上一篇主要涉及的其实是我个人的一些初期目标,以及解决方式。虽然提了提Parser类的实现,但是代码毕竟不是主要讨论的对象。而且很明显的,上一篇几乎与galgame制作无关……

这一篇主要讨论的实现,中心目标是实现一个“能显示背景图片,播放背景音乐,如同galgame般显示文本”的试验程序。称之为试验程序的主要原因是:它的代码可能很乱,命名也是随意命名的,无视耦合……这部分代码只用来显示相关代码是否正常运行------不过说起来,大多数人都是这样做的?

上一篇忘了说,这个项目已经完成的部分我已经上传至github(最近应该没问题了吧?),有兴趣的欢迎围观和clone,branch也是大大欢迎的。地址是这个:项目地址。

关于git已经github的使用,有需要的话,请看一下这篇博客 git教学,或者看看官方的文档。

不多说了,接下来是正文部分。

上一篇中,通过Parser类,可以得到三个变量,分别是背景图片的名字,背景音乐的名字,和剧情文本的内容,但是我不准备引用这三个变量。原因是,文件读入的文字,会受操作系统的文字编码影响。当然一般来说是没问题的,但是若是编写跨平台的程序时,就会很麻烦。最终完成的程序是能够跨平台运行的,文字编码这部分当然使得我很是困扰,这部分说长不长,说短不短,我留到最后来说说。

后面的内容涉及了许多pygame的内容,官方文档很棒,eyehere的系列文章也相当棒,没接触过pygame的建议都去看看。eyehere

下面这几个变量已经是所要处理的全部内容了……相当简单,名字是随意写的。

backgound = 'test.jpg'

bgm = 'sanae.wav'

text = u'博主正在下一盘大棋……'

完成上文那个简单目标的代码如下

# -*- coding: utf-8 -*-

import pygame

from pygame.locals import *

from sys import exit

background = 'test.jpg'

bgm = 'sanae.wav'

text = u'博主正在下一盘大棋……'

##以下三行几乎是定式,至少我都有用

pygame.init()

screen = pygame.display.set_mode((800,600),0,32)

clock = pygame.time.Clock()

##标题栏上的名字,或许你习惯写成游戏的名字?

pygame.display.set_caption('Sanae')

##这个是把图片转成surface,surface是pygame中一个很重要的概念

background = pygame.image.load(background).convert()

##读入bgm

pygame.mixer.music.load(bgm)

##载入字体,我这里用的是hksn,你可以随便下,雅黑很不错。记住是要能显示中文的

font = pygame.font.Font("hksn.ttf",20)

##把text内容转成surface,True那个是字体平滑还是什么的,最后那个是颜色

text_surface = font.render(text,True,(0,0,255))

##初始化一个供绑定的TextRect

TextRect = pygame.Surface((200,200))

##白色填充

TextRect.fill((0xFF,0xFF,0xFF))

##把文本内容绑定到TextRect上去

TextRect.blit(text_surface,(0,0))

##播放背景音乐

pygame.mixer.music.play(-1,0,0)

##游戏主循环

while True:

for event in pygame.event.get():

exit()

##限定帧为5,事实上,galgame的帧数通常都很低很低,我估计1都行

clock.tick(5)

##下面把背景图片和文字绑定到游戏屏幕上去,注意顺序

screen.blit(background,(0,0))

screen.blit(TextRec,(0,0))

pygame.display.update()

就这样,现在一个能播放音乐,能展示一幅图片,还能丑丑地显示文字的小玩意就做好了。当然始终要明白:这只是为了测试相关功能实现的试验程序而已,真正的程序可不能这么水。但是你要知道,真正程序的核心,也就这样……很简单?

这篇内容不多,我本来想接着写下去的,但是考虑到下面的代码很多,估计篇幅很长,干脆拆成两篇,阅读更省力~~下一篇的主要是封装,以及异常。

python游戏引擎开发二_python制作galgame引擎(二)相关推荐

  1. python能制作游戏吗_python制作galgame引擎(一)

    写这个项目的直接原因是最近推galgame推得有点过头,gal推过头的直接结果就是YY能力上涨,抱着"我也想写好玩的剧本"的轻率念头,也就开始了这个项目.不过从直接感觉来说,gal ...

  2. [Python的奇妙开发]用tkinter实现Galgame引擎的建立(一)

    Galgame开发之前的准备 前排提示:学习这个之前,你可以先去学习一下tkinter (ACG圈的朋友可以选择跳过这里-) 以下使用的是百度百科对Galgame的解释: Galgame(日文假名:ギ ...

  3. python制作游戏引擎_python制作galgame引擎(三)

    正如上一篇所见,试验代码相当丑陋,效果也极度不堪--而且内部代码全部暴露,甚至没有一个接口,增添功能时也必然是伤筋动骨.于是,这一篇的目标是: 1.对代码进行封装,并且代码中不能出现常量或常量字符. ...

  4. python做exe开发教程_python做exe开发教程

    python做exe开发教程内容摘要 python做exe开发教程其他方法无效时可用免疫抑制剂,交通部监理员教程证,6.客户端的异常测试.6.机费用械性能(1)抗拉试验:酒店入职教程内容,6.9l-8 ...

  5. python游戏编程入门免费_python游戏编程入门 python游戏编程入门课

    python游戏编程入门 python游戏编程入门课 什么是python游戏编程入门?首先我们需要认识什么是Python Python既是一个软件工具包,也是一种语言.Python软件包包含了一个名为 ...

  6. python怎么安装开发版_python - easy_install的安装和使用

    为什么要装easy_install? 正常情况下,我们要给Python安装第三方的扩展包,我们必须下载压缩包,解压缩到一个目录,然后命令行或者终端打开这个目录,然后执行 python setup.py ...

  7. python全栈开发优势_Python全栈开发多少钱?学Python价格贵吗?

    Python全栈开发培训多少钱?学习Python是大家进入编程世界的理想之选,而且Python也是一门非常受欢迎的编程,可以从事的领域有很多. 从目前市场上的行情来说,一般情况下Python培训的费用 ...

  8. python全栈开发下载_python全栈开发神器 - 『精品软件区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn...

    将安卓手机打造成你的python全栈开发利器 超神利器- 相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具,但因为一次简单的爬虫让我对它失望之极.Q ...

  9. python游戏编程入门源代码_python游戏编程入门源代码

    [实例简介] <Python游戏编程入门>的源代码,作者Jonathan S.Harbour 很好的资源,希望对学习python的同学有帮助,代码都可以运行 [实例截图] [核心代码] p ...

最新文章

  1. linux shell 特殊变量 符号 $0, $#, $*, $@, $?, $$ 命令行参数
  2. 三圆相交阴影部分面积_小学六年级图形面积的题很多家长都不会,一些初中生也未必会做...
  3. 2021 整理的最全学习资源,送给每一个努力着的人
  4. 聊聊excel生成图片的几种方式
  5. Excel和PPT已经落后了,可视化大屏强在哪?一次看过瘾
  6. c语言block内部的实现原理,iOS中block变量捕获原理详析
  7. 英特尔无人车!灯,等灯等灯!
  8. matlab中交点坐标,matlab交点坐标
  9. 27学java能找到工作吗_今年27,想自学Java,转行程序员,请问可行吗?
  10. dnf喇叭怎么设置不显示服务器,《DNF》屏蔽广告喇叭方法 广告喇叭怎么关掉
  11. 医疗系统流程软件测试用例,如何写全流程的测试用例 - rose8561900的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  12. 推荐6款小众实用的Mac软件,让人耳目一新!
  13. SCRUM Beta Day 10
  14. Jaeger开发入门(java版)
  15. STI、LOD与WPE概念2:减少或避免WPE/STI效应对IP模块设计的影响
  16. Docker容器---镜像原理以及创建
  17. 多样本GVCF文件合并
  18. 机器人控制器编程课程-教案06-理论课总结
  19. 物联网和大数据解决方案如何改变数字医疗行业
  20. Roam Reserach 到底好在哪儿?

热门文章

  1. 隧道通信之socket隧道
  2. ACDSee Pro 6.0.169 (x86) crack by XenoCoder
  3. java第七封印游戏_第七封印游戏攻略秘籍集锦
  4. 公告:CSDN Blog 将进一步加强对流量和非法文章的管理
  5. 可布阵的鸿蒙武器,冰雪复古传奇手游鸿蒙装备属性一览
  6. LEADTOOLS 22-23 .Net/NetCore/JS/JAVA/Win/Linux
  7. 磁盘空间不足 明明有空间_为什么会有“磁盘空间不足”警告?
  8. 如何让演讲有说服力?
  9. MATLAB实现正方体内嵌套1/4圆画图程序
  10. Windows计划任务提示 0xE0434352 错误