一种新的输入–事件之另一个游戏PyPong,,


  另一个游戏PyPong

  这一节中,我们将把前面学到的内容集中在一起(包括动画精灵、碰撞检测和事件),建立一个简单的“球拍与球”游戏,类似于Pong。

  从前的美好时光

  与孩子一起学编程-python教程

  先来看一个简单的单机版本,我们的游戏需要:

  一个来回反弹的球

  一个打球的球拍

  一种控制球拍的方法

  一种记录分数并在窗口上显示分数的方法

  一种确定有几条“命”的方法---你有几次机会

  我们将在构建程序过程中逐个分析以上的需求。

  

  我们之前使用的沙滩球对于Pong游戏来说有点大,我们需要小一点的球,Carter和我为这个游戏想出了这个有些滑稽的网球小人:与孩子一起学编程-python教程

  

  与孩子一起学编程-python教程

  嘿,如果你被球拍打来打去,也会吓得够呛!

  我们将在这个游戏中使用动画精灵,所以需要为我们的球建立一个精灵,然后为它创建一个实例,我们将使用包含_init_()和move()方法的Ball类。

  与孩子一起学编程-python教程

  创建球的实例时,我们会告诉它使用哪个图像、球的速度以及球的起始位置

  与孩子一起学编程-python教程

  还需要把这个球增加到一个组,以便完成球和球拍之间的碰撞检测,可以创建组,同时把球增加到这个组:

  与孩子一起学编程-python教程

  球拍

  对于球拍,我们仍然坚持Pong游戏的传统,只是使用一个简单的矩形,我们将要使用一个白色背景,所以把球拍创建为一个黑色矩形,也要为球拍建立一个精灵类和实例:

  

  与孩子一起学编程-python教程

  注意,对于球拍,我们并没有加载图像文件:这里只是用黑色填充一个矩形表面来创建一个图像,不过,每个精灵都需要一个image属性,所以我们使用Surface.convert()方法把表面转换为一个图像。

  这个球拍只能左右移动,不能上下移动,我们让球拍的X位置(它的左右位置)跟着鼠标移动,所以用户可以用鼠标来控制球拍,因为这个工作的事件循环中完成,所以球拍不需要一个单独的move()方法。

评论关闭