一种新的输入–事件之另一个游戏PyPong,,
一种新的输入–事件之另一个游戏PyPong,,
另一个游戏PyPong
这一节中,我们将把前面学到的内容集中在一起(包括动画精灵、碰撞检测和事件),建立一个简单的“球拍与球”游戏,类似于Pong。
从前的美好时光
先来看一个简单的单机版本,我们的游戏需要:
一个来回反弹的球
一个打球的球拍
一种控制球拍的方法
一种记录分数并在窗口上显示分数的方法
一种确定有几条“命”的方法---你有几次机会
我们将在构建程序过程中逐个分析以上的需求。
球
我们之前使用的沙滩球对于Pong游戏来说有点大,我们需要小一点的球,Carter和我为这个游戏想出了这个有些滑稽的网球小人:
嘿,如果你被球拍打来打去,也会吓得够呛!
我们将在这个游戏中使用动画精灵,所以需要为我们的球建立一个精灵,然后为它创建一个实例,我们将使用包含_init_()和move()方法的Ball类。
创建球的实例时,我们会告诉它使用哪个图像、球的速度以及球的起始位置
还需要把这个球增加到一个组,以便完成球和球拍之间的碰撞检测,可以创建组,同时把球增加到这个组:
球拍
对于球拍,我们仍然坚持Pong游戏的传统,只是使用一个简单的矩形,我们将要使用一个白色背景,所以把球拍创建为一个黑色矩形,也要为球拍建立一个精灵类和实例:
注意,对于球拍,我们并没有加载图像文件:这里只是用黑色填充一个矩形表面来创建一个图像,不过,每个精灵都需要一个image属性,所以我们使用Surface.convert()方法把表面转换为一个图像。
这个球拍只能左右移动,不能上下移动,我们让球拍的X位置(它的左右位置)跟着鼠标移动,所以用户可以用鼠标来控制球拍,因为这个工作的事件循环中完成,所以球拍不需要一个单独的move()方法。
评论关闭