模块化编程概述与拦球游戏源码与教程

pygame ping pong game 拦球游戏
pygame ping pong game 拦球游戏

在上一节中,我们设计了Ball类。如果程序中还要设计其它类,那么程序就会越来越长。我们使用过from turtle import Turtle这样的代码,它是把Turtle类从海龟模块导入进来的意思。那么,我们也可以来一个from ball import Ball命令导入Ball类。这就需要建立ball.py模块。接下来我们还要建一个Board类。它用来生成一个拦板,以便拦球,让小球们反弹。这个Board类也放在一个单独的叫board.py的模块中。最后就是主程序模块了,一般把它叫main.py。不过,在这里为了便于描述,直接把它叫“拦球动画.py”了。

在本节的Ball类,依旧设计speed属性代表球的水平速度和垂直速度,它是一个列表。不同于上一节的Ball类。由于新建了拦板类,为了让每一个球都能访问拦板,所以给球类增加了一个叫board的参数。还增加了当球碰到拦板的方法,名叫bounce_on_board。在每次update球后,都会调用它,判断一次球是否碰到了拦板。如果碰到了,就让它的垂直速度反向。

球碰到拦板的原理,我们这里不做讨论。我们直接调用了pygame.sprite子模块提供的collide_rect命令判断两个角色是否发生碰撞。很显然,这是通过判断矩形是否重叠实现的。以下是整个拦球游戏的源代码。

如需要查看完整源代码,请扫码付款:

VIP免费查看

已有0人支付

一个基本的拦球游戏雏形就编写好了。其它的封面,配音相信读者可以自己搞定?

本站所有作品,教程等皆为原创。只供个人及单位内部研究使用,对外展示或传播必需经本站同意,且注明来自本站。培训机构等用本站资源培训学生,需经本站授权。一旦付款,表示同意本站知识付费原则:数字商品,不支持退款。亦可直接向微信号scratch8付款购买。QQ群免费教学群:225792826 (提供真实姓名可入群)
李兴球的博客_Python创意编程技术前沿_pygame » 模块化编程概述与拦球游戏源码与教程
scratch

学本领,探索更大的世界!

李兴球博客 风火轮编程主页