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绘制数据的瀑布图的教程
Apr 07 Python
Windows下用py2exe将Python程序打包成exe程序的教程
Apr 08 Python
python中os模块详解
Oct 14 Python
Python实现读取txt文件并转换为excel的方法示例
May 17 Python
python使用webdriver爬取微信公众号
Aug 31 Python
解读python如何实现决策树算法
Oct 11 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
python 计算方位角实例(根据两点的坐标计算)
Jan 17 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 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 adodb操作mysql数据库
2009/03/19 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
php微信支付之APP支付方法
2015/03/04 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
2016/11/02 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
phpwind放自动注册方法
2006/12/02 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
分享Python字符串关键点
2015/12/13 Python
python re模块的高级用法详解
2018/06/06 Python
python实现猜数字小游戏
2020/03/24 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
python集合删除多种方法详解
2020/02/10 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
什么是python的自省
2020/06/21 Python
html Table 表头固定的实现
2019/01/22 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
Theflamel意大利:女士奢华服装、鞋子和配件
2020/01/11 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
土木工程应届生求职信
2013/10/31 职场文书
门卫人员岗位职责
2013/12/24 职场文书
新教师岗前培训方案
2014/06/05 职场文书
励志演讲稿300字
2014/08/21 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书