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 18 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
Python发送http请求解析返回json的实例
Mar 26 Python
python爬取网易云音乐评论
Nov 16 Python
python使用插值法画出平滑曲线
Dec 15 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
Python Django 添加首页尾页上一页下一页代码实例
Aug 21 Python
Python venv虚拟环境配置过程解析
Jul 08 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 Python
pandas中DataFrame检测重复值的实现
May 26 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
文件上传程序的全部源码
2006/10/09 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
php 调用ffmpeg获取视频信息的简单实现
2017/04/03 PHP
Yii 2.0中场景的使用教程
2017/06/02 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
PyTorch里面的torch.nn.Parameter()详解
2020/01/03 Python
基于python实现模拟数据结构模型
2020/06/12 Python
keras得到每层的系数方式
2020/06/15 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
自我评价格式
2014/01/06 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏