一种新的输入–事件之控制球拍,,
一种新的输入–事件之控制球拍,,
控制球拍
上一节已经提到过,我们将用鼠标控制球拍,这里要使用MOUSEMOTION事件,这说明只要鼠标在Pygame窗口内部移动,球拍就会移动,由于鼠标在Pygame窗口内时Pygame才能“看到”鼠标,所以球拍会自动限制在窗口的边界以内。我们将让球拍的中心跟随鼠标移动。
代码应该像这样:
Event.pos是一个列表,包含鼠标位置的【X,Y】值。所以event.pos[0]会提供鼠标移动时的X位置,当然,如果鼠标在左边鼠标或右边界上,球拍会有一半在窗口之外,不过这是可以的。
还需要最后一点:球和球拍之间的碰撞检测,我们就是利用这种“碰撞”才能用球拍“打”球,出现碰撞时,只需让球的Y速度反射(所以如果球在向下走,碰到球拍时它会反弹,开始向上移动)。代码如下:
还要记住每次循环时都要重绘,如果把这些内容都集中在一起,就得到了一个非常基本的类似Pong的程序,代码清单18-4给出了(至今为止)完整的代码。
运行这个程序时应该能得到下面的结果。
也许吧,这可能不是最让人兴奋的游戏,不过我们只是刚刚起步,才开始在Pygame中编写游戏,下面再向我们的PyPong游戏加些东西。
评论关闭