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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
python 编程之twisted详解及简单实例
Jan 28 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
python实现堆和索引堆的代码示例
Mar 19 Python
Django安装配置mysql的方法步骤
Oct 15 Python
Python实现图像的垂直投影示例
Jan 17 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
python中K-means算法基础知识点
Jan 25 Python
python lambda的使用详解
Feb 26 Python
教你如何使用Python开发一个钉钉群应答机器人
Jun 21 Python
Python OpenCV之常用滤波器使用详解
Apr 07 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数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
2013/06/27 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
js中function()使用方法
2013/12/24 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
python使用7z解压apk包的方法
2015/04/18 Python
Python解析nginx日志文件
2015/05/11 Python
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
用python爬取租房网站信息的代码
2018/12/14 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python创建学生管理系统
2019/11/22 Python
pandas 对group进行聚合的例子
2019/12/27 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
简单了解如何封装自己的Python包
2020/07/08 Python
通俗讲解python 装饰器
2020/09/07 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
介绍一下MD5加密算法
2016/11/12 面试题
经典优秀个人求职自荐信格式
2013/09/25 职场文书
中专生自我鉴定
2013/12/17 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
在 SQL 语句中处理 NULL 值的方法
2021/06/07 SQL Server
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android