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中字典创建、遍历、添加等实用操作技巧合集
Jun 02 Python
python和ruby,我选谁?
Sep 13 Python
python机器学习理论与实战(四)逻辑回归
Jan 19 Python
python实现求最长回文子串长度
Jan 22 Python
Python实现的凯撒密码算法示例
Apr 12 Python
Django进阶之CSRF的解决
Aug 01 Python
python3利用Socket实现通信的方法示例
May 06 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
用python写测试数据文件过程解析
Sep 25 Python
pandas 对group进行聚合的例子
Dec 27 Python
Python关于反射的实例代码分享
Feb 20 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 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
新52大事件
2020/03/03 欧美动漫
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP学习之整理字符串
2011/04/17 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
php创建类并调用的实例方法
2019/09/25 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
JS写的数字拼图小游戏代码[学习参考]
2008/10/29 Javascript
React.js入门学习第一篇
2016/03/30 Javascript
js轮播图代码分享
2016/07/14 Javascript
js基础之DOM中document对象的常用属性方法详解
2016/10/28 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
python fabric使用笔记
2015/05/09 Python
python设计模式大全
2016/06/27 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
windows系统下Python环境的搭建(Aptana Studio)
2017/03/06 Python
Python进阶_关于命名空间与作用域(详解)
2017/05/29 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Django 大文件下载实现过程解析
2019/08/01 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
口腔医学技术应届生求职信
2013/11/09 职场文书
营业经理岗位职责
2013/11/10 职场文书
运动会领导邀请函
2014/01/10 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
大学信息公开实施方案
2014/03/09 职场文书
教师对学生的评语
2014/04/28 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
《静夜思》教学反思
2016/02/17 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android
Python面向对象编程之类的概念
2021/11/01 Python