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进阶教程之函数对象(函数也是对象)
Aug 30 Python
Python greenlet实现原理和使用示例
Sep 24 Python
python将图片文件转换成base64编码的方法
Mar 14 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
Python格式化字符串f-string概览(小结)
Jun 18 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
python argparse模块通过后台传递参数实例
Apr 20 Python
Python生成器generator原理及用法解析
Jul 20 Python
python 制作本地应用搜索工具
Feb 27 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使用Session和文件统计在线人数
2015/07/04 PHP
PHP数组操作类实例
2015/07/11 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
php数组遍历类与用法示例
2019/05/24 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
python逐行读写txt文件的实例讲解
2018/04/03 Python
详解Python的循环结构知识点
2019/05/20 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
团支书竞选演讲稿
2014/04/28 职场文书
会计求职信范文
2014/05/24 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
大学生读书笔记范文
2015/07/01 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
JavaScript的function函数详细介绍
2021/11/20 Javascript
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏