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设计模式中的代理模式与模板方法模式编程
Feb 02 Python
机器学习python实战之决策树
Nov 01 Python
浅谈Pycharm中的Python Console与Terminal
Jan 17 Python
对python判断ip是否可达的实例详解
Jan 31 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
Python lxml模块的基本使用方法分析
Dec 21 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
详解Python设计模式之策略模式
Jun 15 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
python 检测图片是否有马赛克
Dec 01 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
PHP基本语法总结
2014/09/06 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
vue组件的写法汇总
2018/04/12 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
春游踏青活动方案
2014/08/14 职场文书
教师自荐信范文
2015/03/06 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书
详解Redis瘦身指南
2021/05/26 Redis
Golang生成Excel文档的方法步骤
2021/06/09 Golang
windows server 2016 域环境搭建的方法步骤(图文)
2022/06/25 Servers