前言
在前面的章节中,我们学习了用pygame
来创建动画的一些基础知识,也研究了一些动画、文字、声音等元素以及对鼠标和键盘响应的处理,这一次我们开始进入实战操作,通过对一个“小迷宫”游戏的开发来逐步掌握pygame
在二维游戏领域的强大功能。
游戏思路
先来看一下我们游戏的最终形态:
集齐图标。这些图标可以在各个免费图标网站下载,当然同学们可以依据自己的快乐喜爱制作图标,为了显示美观,将图标设计为正方形会是个好主意。 程序加载图标。同学们可以将收集齐的图标放入同一个文件夹下,为方便程序设计,建议可将图标按某种规律命名,好比我这里用的是 fruit1
、fruit2
等等,这样子就可以充分利用循环体来加载。绘制布景,在界面上设计好各个图标的位置。二维游戏的设计肯定离不开平面坐标系,在前面章节我们已经研究了 pygame
的坐标系统,这里需要用到嵌套循环来计算各个图标位置的摆放。处理鼠标点击事件。在前面章节我们已经学习了如何获取鼠标点击的位置,通过第3步,我们可以存储各个图标的实际位置范围,以便于检测用户鼠标点击时,是位于哪一个图标上。 匹配图标。由于游戏是两个图标进行匹配,所以程序需要记忆两次点击的图标及位置,并进行比对,如果一致,则显示两个图标,否则将两个已经点开的不同图标均用白方块覆盖。 记时功能。玩游戏最重要的是有一个标准,对于这个小游戏来说,匹配完所有的图标当然是一个标准,但如果加上记时功能,则对于游戏玩家更具挑战性,同时可以挑战自己的瞬间记忆能力。 排名功能。在游戏结束的时候可以弹出对话框,让用户输入名字,并保存用户的成绩,可以只取前三名。
图标的收集
easyicon.net
这个网站下载,通过输入fruit
关键字,可以搜索相应的水果图标来下载:程序加载图标
image
的文件夹,将所有图标文件编号后放在其中,可用下面代码加载:pygame.transform.smoothscale
函数是将加载的图标按我们的需求进行缩放。python
中的二维数组比较简单,下面一行代码即可创建一个全部元素为0的二维数组:rect
部分内容在前面章节有讲到,不熟悉的同学可以回看一下,下面代码演示了如何计算每一个小方块的rect
,并将其加入刚才创建的二维数组中去:(-1,-1)
来标识。其它教程: