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 pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python读取mp3中ID3信息的方法
Mar 05 Python
matplotlib设置legend图例代码示例
Dec 19 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
Apr 05 Python
Python数据结构之哈夫曼树定义与使用方法示例
Apr 22 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
Django密码系统实现过程详解
Jul 19 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
python+requests接口压力测试500次,查看响应时间的实例
Apr 30 Python
手把手教你怎么用Python实现zip文件密码的破解
May 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
利用PHP实现与ASP Banner组件相似的类
2006/10/09 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
php数组键值用法实例分析
2015/02/27 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
8 行 Node.js 代码实现代理服务器
2016/12/05 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
使用selenium抓取淘宝的商品信息实例
2018/02/06 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
个人实习生的自我评价
2014/02/16 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers