一种新的输入–事件之控制球拍,,


  控制球拍

  上一节已经提到过,我们将用鼠标控制球拍,这里要使用MOUSEMOTION事件,这说明只要鼠标在Pygame窗口内部移动,球拍就会移动,由于鼠标在Pygame窗口内时Pygame才能“看到”鼠标,所以球拍会自动限制在窗口的边界以内。我们将让球拍的中心跟随鼠标移动。

  代码应该像这样:

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

  Event.pos是一个列表,包含鼠标位置的【X,Y】值。所以event.pos[0]会提供鼠标移动时的X位置,当然,如果鼠标在左边鼠标或右边界上,球拍会有一半在窗口之外,不过这是可以的。

  还需要最后一点:球和球拍之间的碰撞检测,我们就是利用这种“碰撞”才能用球拍“打”球,出现碰撞时,只需让球的Y速度反射(所以如果球在向下走,碰到球拍时它会反弹,开始向上移动)。代码如下:

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

  还要记住每次循环时都要重绘,如果把这些内容都集中在一起,就得到了一个非常基本的类似Pong的程序,代码清单18-4给出了(至今为止)完整的代码。

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

  运行这个程序时应该能得到下面的结果。

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

  也许吧,这可能不是最让人兴奋的游戏,不过我们只是刚刚起步,才开始在Pygame中编写游戏,下面再向我们的PyPong游戏加些东西。

评论关闭