新西兰天维网社区

 找回密码
登录  注册
搜索
热搜: 移民 留学
查看: 685|回复: 0
打印 上一主题 下一主题

[其他] 儿童启蒙游戏编程教程PyGame - 第3课:第一个游戏(下) [复制链接]

Rank: 10Rank: 10Rank: 10

升级  52.8%

UID
231216
热情
2557
人气
2921
主题
24
帖子
72
精华
0
积分
2792
阅读权限
30
注册时间
2010-5-25
跳转到指定楼层
楼主
发表于 2023-9-14 19:26:00 |只看该作者 |倒序浏览 微信分享
--------------------------------- 转帖自:http://kidscando.co.nz -----------------------------


在上一课中,我们运行了一个做好的游戏,这节课我们就要来试试自己修改部分游戏代码,来让程序按我们想的来工作。
从上节课的游戏框架中我们解压出来一些文件,对于初级教程来说,我们唯一关心的文件在 Logic/gameController.py





你可以用任何文本编辑器打开gameController.py,其内容如下:
def runIt(screen, smile):          screen.blit(smile, (100,50))

是的,内容非常简短,试着改下100或50的数字, 假设我们把它都改成0如下:
def runIt(screen, smile):          screen.blit(smile, (0,0))

保存文件再运行 pygame main.py (请确保移动到main.py所在的文件夹,如果你当前在Logic文件夹,请用 cd.. 来移动到上层文件夹), 运行结果:



现在笑脸紧贴左上角窗口了,很好,我们修改了程序,运行结果改变了,修改这2个数,我们可以让图片出现在任何位置。



知识点
def定义了一个叫runIt的子程序,游戏内部会定期运行这个子程序,你所要做的就是修改runIt子程序的内部代码,来告诉游戏引擎你想做什么。

screen.blit(smile,(100,50)) – screen是游戏画板,smile是我们的笑脸图片,blit是游戏画板拥有的贴图功能,(100,50) 代表的是距游戏画板左边框距离100,距离游戏画板上方边框50的位置。
所以它的意思是,在游戏画板上使用贴图功能并贴上笑脸图片,笑脸图片位置距离画板左边框往右偏100,距离画板上方边框往下偏50。

请注意,距离的移动都是以图片的左上角为基准的,不是图片中心。

还有一点需要注意,在runIt的子程序中的所有语句都需要一个缩进,就是键盘上的Tab键, 当然你也可以用Space键代替,必须保证子程序中所有语句的缩进都是同样的大小,不能有的语句缩进2格,有的语句缩进4格。











对于初学者来说,我隐藏了大量细节,它们在main.py,其中包括PyGame引擎初始化,游戏窗口大小,载入笑脸图片,事件循环检测,每帧运行速率等等,不是说它们不重要,只是对初学者特别是小孩子来说能马上上手看到实际结果更重要,更能激发出他们的兴趣。





使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版| 联系论坛客服| 广告服务| 招贤纳士| 新西兰天维网

GMT+13, 2024-11-30 08:29 , Processed in 0.015786 second(s), 13 queries .

Powered by Discuz! X2 Licensed

Copyright 2001- Sky Media Limited, All Rights Reserved.

回顶部