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中exit、return、sys.exit()等使用实例和区别
May 28 Python
Python 含参构造函数实例详解
May 25 Python
Python操作MySQL模拟银行转账
Mar 12 Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
解决django model修改添加字段报错的问题
Nov 18 Python
Python实现一个优先级队列的方法
Jul 31 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
pytorch中的numel函数用法说明
May 13 Python
Python制作一个随机抽奖小工具的实现
Jul 07 Python
Python实现科学占卜 让视频自动打码
Apr 09 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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
PHP应用JSON技巧讲解
2013/02/03 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
微信小程序+腾讯地图开发实现路径规划绘制
2019/05/22 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
vue的路由映射问题及解决方案
2019/10/14 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python 如何创建一个线程池
2020/07/28 Python
大学老师推荐信
2014/02/25 职场文书
建设工程授权委托书
2014/09/22 职场文书
领导班子整改方案
2014/10/25 职场文书
仓库管理员岗位职责
2015/02/03 职场文书
幼儿园中班教师个人总结
2015/02/05 职场文书
煤矿安全保证书
2015/02/27 职场文书
员工自我工作评价
2015/03/06 职场文书
同学聚会通知书
2015/04/20 职场文书
刑事撤诉申请书
2015/05/18 职场文书
施工现场安全管理制度
2015/08/05 职场文书
学生病假条怎么写
2015/08/17 职场文书
幼儿园开学家长寄语(2016秋季)
2015/12/03 职场文书
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS