【学生作品】吴彦霖:掌控版之弹球游戏

2019-11-276174
AI 快速预览详细 收起
吴彦霖同学使用掌控板完成了弹球游戏的设计。项目中,他详细解析了挡板移动和球的反弹逻辑。挡板通过触摸键控制移动,球的反弹则通过控制X和Y值的变化来实现。文章还提供了初始化函数和重置复活函数的代码示例。这个项目适合初学者和对编程感兴趣的青少年,可以帮助他们在实践中掌握编程基础。


mpython 官方精品课程最后一个是游戏设计:


文章中给出了弹球游戏的设计思路与部分代码,但这时候下载代码的话,是没有任何视觉效果的。于是,我花了一个多小时的时间,完善了整个游戏。
---------------------------------------------------------------------------------
先来看看游戏视频效果:

下面分享一下我的思路:
1.挡板移动:用触摸键“P”和“N”增加或减少变量X的值,再通过X的值移动挡板。如果值大于了一个范围,就强制变量不能增加或减少,从而控制挡板移动。如果触摸P或N键,会触发start_flag的变量。(档板的绘制是绘制矩形)



2.球的移动及反弹:这个部分为最难的部分。程序为下图:
【学生作品】吴彦霖:掌控版之弹球游戏图1


解释:Y和X是控制球移动的值,而A和B是控制X和Y增加的值。而程序里的大于小于符号表示弹球是否碰到边缘,如果碰到边缘,则将A或B的值乘以负一的意思是控制小球的X值和Y 的值。
当A和B都是整数是,X增加,Y也增加,球会向右上方走,当球的Y值大于了边框的值(碰到边缘),将B值(增加或减少小球Y的值)乘以负一,球就会向左上方走(此时,X值还是增加,Y值变成减少)
当球的x值大于边框的值(碰到边缘),将A的值(增加或减少小球的X的值)乘以负一,球就会朝左下方走(此时X和Y值都是减少)以此类推......。
在变量初始化的时候,球的位置要在中间偏下一点的位置,能做出“发球”的效果,因为A和B是球的速度,所以初始化时数值是固定的,(最佳值在2--4之间)。

3.除了上面我讲到的几个重要函数,接下来的就是其他的基本函数了。一是初始化的函数,将所有的数据初始化一遍。
定义一个函数,名为“初始化”,里面要将所有的数据初始化。如下图:

【学生作品】吴彦霖:掌控版之弹球游戏图2

做完了初始化,我们还要做重置复活的函数,如下图:



意思是:绘画一个矩形的X轴在loc值上,Y轴在66(矩形的Y轴是挡板的高低,可以根据个人喜好更改。)上。绘画一个圆,X轴在X值上,Y轴在Y值上。A+B一起按下是指开始游戏时的初始化。当我们做好以上程序以后,所有基本程序就已经完成了,游戏也可以运行了!
4.其他设置:以上的都是基本程序,下面的自由发展程序,(例如开始界面,得分,生命值或者用重力感应来控制档板。)发挥你们的想像吧!
5.小贴士:在编程的时候可以分开写几个函数,将程序分解放入各个函数中,这样思路既清晰,又容易维护,能带给我们许多方便。




201911274944..png (47.87 KB, 下载次数: 2827)

STEM教育 · 弹球游戏设计:掌控板编程实战_image_3.webp

201911271628..png (60.47 KB, 下载次数: 2784)

STEM教育 · 弹球游戏设计:掌控板编程实战_image_6.webp

201911275522..png (241.09 KB, 下载次数: 2844)

STEM教育 · 弹球游戏设计:掌控板编程实战_image_9.webp

弹球游戏完整版by杭州市胜利实验学校 吴彦霖.rar

11.01 KB, 下载次数: 3985

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
rzyzzxw
rzyzzxw
强将手下无弱兵。
名师出高徒啊啊。
- 没有更多了 -