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简单分割文件的方法
Jul 30 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
python实现简单遗传算法
Mar 19 Python
python+opencv实现阈值分割
Dec 26 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
详解python中sort排序使用
Mar 23 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
Python中itertools的用法详解
Feb 07 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
Python如何使用内置库matplotlib绘制折线图
Feb 24 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 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
CI框架常用方法小结
2016/05/17 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
jquery衣服颜色选取插件效果代码分享
2015/08/28 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
2018/07/13 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
[51:53]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第二场 1月24日
2021/03/11 DOTA
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python实现单线程多任务非阻塞TCP服务端
2017/06/13 Python
python实现手机通讯录搜索功能
2018/02/22 Python
python的命名规则知识点总结
2019/10/04 Python
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
给护士表扬信
2014/01/19 职场文书
优秀体育委员自荐书
2014/01/31 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
日化店促销方案
2014/03/26 职场文书
公路绿化方案
2014/05/12 职场文书
运动会的口号
2014/06/09 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
户外活动总结
2015/02/04 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS