Python基于pygame实现的font游戏字体(附源码)


Posted in Python onNovember 11, 2015

本文实例讲述了Python基于pygame实现的font游戏字体。分享给大家供大家参考,具体如下:

在pygame游戏开发中,一个友好的UI中,漂亮的字体是少不了的

今天就给大伙带来有关pygame中字体的一些介绍说明

首先我们得判断一下我们的pygame中有没有font这个模块

if not pygame.font: print('Warning, fonts disabled')

如果有的话才可以进行接下来的操作:-)

我们可以这样使用pygame中的字体:

tork_font = pygame.font.Font('data\\font\\TORK____.ttf', 20)

当然也可以使用系统中自带的字体:
my_font = pygame.font.SysFont("arial", 10)

参数一:字体名称

参数二:字体大小

比较一下上面两个方法,一个是自定义的字体,一个是系统自带的字体,相对而言

自定义的字体要好一点,因为在pygame打包的过程中,可以把自定义的字体打包进去

这样就可以进行很好的移植;而系统自带的字体, 毕竟不是每个系统都有相应的字体,

所以他的移植性不是很好,依赖性很大。

如果定义好了字体,那么我们应该把字体显示到suiface上面去,我们应该这样操作:

position = tork_font.render('Hello,I\'m Hongten', True, (255, 255,255), (23, 43,234))

参数一:显示的内容

参数二:是否开启抗锯齿,就是说True的话字体会比较平滑,不过相应的速度有一点点影响

参数三:字体颜色

参数四:字体背景颜色(可选)即可以这样:

position = tork_font.render('Hello,I\'m Hongten', True, (255, 255,255))

下面给出一个demo,说说pygame中字体的使用

Python基于pygame实现的font游戏字体(附源码)

在demo中,玩家可以使用键盘上的:上,下,左,右四个方向键进行控制青蛙的移动,

在移动的过程中,左下角会动态记录青蛙的位置情况。

代码部分如下:

#python font
import os, pygame
from pygame.locals import *
from sys import exit
__author__ = {'name' : 'Hongten',
  'mail' : 'hongtenzone@foxmail.com',
  'Version' : '1.0'}
if not pygame.font: print('Warning, fonts disabled')
pygame.init()
SCREEN_DEFAULT_SIZE = (500, 500)
BG_IMAGE_NAME = 'bg.gif'
FROG_IMAGE_NAME = 'frog.gif'
TORK_FONT_NAME = 'TORK____.ttf'
bg_image_path = os.path.join('data\\image', BG_IMAGE_NAME)
frog_image_path = os.path.join('data\\image', FROG_IMAGE_NAME)
tork_font_path = os.path.join('data\\font', TORK_FONT_NAME)
if not os.path.exists(bg_image_path):
 print('Can\'t found the background image:', bg_image_path)
if not os.path.exists(frog_image_path):
 print('Can\'t fount the frog image:', frog_image_path)
if not os.path.exists(tork_font_path):
 print('Can\'t fount the font:', tork_font_path)
screen = pygame.display.set_mode(SCREEN_DEFAULT_SIZE, 0, 32)
bg = pygame.image.load(bg_image_path).convert()
frog = pygame.image.load(frog_image_path).convert_alpha()
tork_font = pygame.font.Font(tork_font_path, 20)
frog_x, frog_y = 0, 0
frog_move_x, frog_move_y = 0, 0
while 1:
 for event in pygame.event.get():
 if event.type == QUIT:
  exit()
 elif event.type == KEYDOWN:
  if event.key == K_LEFT:
  frog_move_x = -1
  elif event.key == K_UP:
  frog_move_y = -1
  elif event.key == K_RIGHT:
  frog_move_x = 1
  elif event.key == K_DOWN:
  frog_move_y = 1
 elif event.type == KEYUP:
  frog_move_x = 0
  frog_move_y = 0
 frog_x += frog_move_x
 frog_y += frog_move_y
 #print(frog_x, frog_y)
 screen.blit(bg, (0, 0))
 position_str = 'Position:' + str(frog_x) + ',' + str(frog_y)
 position = tork_font.render(position_str, True, (255, 255,255), (23, 43,234))
 screen.blit(position, (0, 480))
 screen.blit(frog, (frog_x, frog_y))
 pygame.display.update()

完整实例代码代码点击此处本站下载。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用PYTHON创建XML文档
Mar 01 Python
Python实现字符串逆序输出功能示例
Jun 24 Python
基于python OpenCV实现动态人脸检测
May 25 Python
redis之django-redis的简单缓存使用
Jun 07 Python
使用python3构建文件传输的方法
Feb 13 Python
django中ORM模型常用的字段的使用方法
Mar 05 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
Django实现简单网页弹出警告代码
Nov 15 Python
Python numpy数组转置与轴变换
Nov 15 Python
python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
Apr 02 Python
基于Python实现的购物商城管理系统
Apr 27 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 #Python
python基于pygame实现响应游戏中事件的方法(附源码)
Nov 11 #Python
Python基于pygame实现的弹力球效果(附源码)
Nov 11 #Python
Python中pygame安装方法图文详解
Nov 11 #Python
Python基于pygame实现图片代替鼠标移动效果
Nov 11 #Python
python开发之thread线程基础实例入门
Nov 11 #Python
python开发之thread实现布朗运动的方法
Nov 11 #Python
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
一个用于网络的工具函数库
2006/10/09 PHP
在线增减.htpasswd内的用户
2006/10/09 PHP
php自动适应范围的分页代码
2008/08/05 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
PHP类的特性实例分析
2016/09/28 PHP
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
Vue侧滑菜单组件——DrawerLayout
2017/12/18 Javascript
在 Typescript 中使用可被复用的 Vue Mixin功能
2018/04/17 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
Python函数式编程指南(二):从函数开始
2015/06/24 Python
python统计日志ip访问数的方法
2015/07/06 Python
基于python时间处理方法(详解)
2017/08/14 Python
Python reduce()函数的用法小结
2017/11/15 Python
Python中super函数的用法
2017/11/17 Python
Django组件content-type使用方法详解
2019/07/19 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Free People中国官网:波西米亚风格女装服饰
2016/08/30 全球购物
最新大学职业规划书范文
2013/12/30 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
学术会议主持词
2014/03/17 职场文书
项目合作意向书范本
2014/04/01 职场文书
社区春季防火方案
2014/06/02 职场文书
出租房屋协议书
2014/09/14 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
2014年标准化工作总结
2014/12/17 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书