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 XML RPC服务器端和客户端实例
Nov 22 Python
python利用pandas将excel文件转换为txt文件的方法
Oct 23 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
python使用HTMLTestRunner导出饼图分析报告的方法
Dec 30 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 Python
python MD5加密的示例
Oct 19 Python
如何让PyQt5中QWebEngineView与JavaScript交互
Oct 21 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python实现图片批量压缩
Apr 24 Python
python文本处理的方案(结巴分词并去除符号)
May 26 Python
Django Paginator分页器的使用示例
Jun 23 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
神族 PROTOSS 概述
2020/03/14 星际争霸
Yii配置文件用法详解
2014/12/04 PHP
Mac环境下php操作mysql数据库的方法分享
2015/05/11 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
ThinkPHP的SAE开发相关注意事项详解
2016/10/09 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
用js实现小球的自由移动代码
2013/04/22 Javascript
js字母大小写转换实现方法总结
2013/11/13 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
基于jquery实现三级下拉菜单
2016/05/10 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
jQuery设置下拉框显示与隐藏效果的方法分析
2019/09/15 jQuery
JavaScript cookie原理及使用实例
2020/05/08 Javascript
用Python实现换行符转换的脚本的教程
2015/04/16 Python
python爬虫基本知识
2018/03/05 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
大学生找工作推荐信范文
2013/11/28 职场文书
全神贯注教学反思
2014/02/03 职场文书
银行职员自我鉴定
2014/04/20 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
2014年应急管理工作总结
2014/11/26 职场文书
会议主持词开场白
2015/05/28 职场文书