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数据类型转换函数总结
Mar 11 Python
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
浅谈Python 对象内存占用
Jul 15 Python
小小聊天室Python代码实现
Aug 17 Python
Python实现二维数组输出为图片
Apr 03 Python
PyQt实现界面翻转切换效果
Apr 20 Python
Python玩转PDF的各种骚操作
May 06 Python
对django layer弹窗组件的使用详解
Aug 31 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
用python绘制樱花树
Oct 09 Python
进行数据处理的6个 Python 代码块分享
Apr 06 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
php4的session功能评述(一)
2006/10/09 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
jQuery中offsetParent()方法用法实例
2015/01/19 Javascript
jQuery实现跨域
2015/02/03 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
基于JavaScript实现验证码功能
2017/04/01 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
Ionic学习日记实现验证码倒计时
2018/02/08 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
[01:53]DOTA2超级联赛专访Zhou 五年职业青春成长
2013/05/29 DOTA
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
印尼购物网站:iLOTTE
2019/10/16 全球购物
司机检讨书
2014/02/13 职场文书
作文评语大全
2014/04/23 职场文书
2014年中秋寄语
2014/08/11 职场文书
大学军训决心书
2015/02/05 职场文书
居住证明范文
2015/06/17 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书