【Scratch 3.0游戏】—— 乒乓弹球游戏

模拟了一下PONG,先介绍一下规则:双方开始时随机玩家发球,玩家y方向上移动,碰到小球后进行反弹,没碰到对方加一分,球碰到移动挡板不同位置,反射角度有所不同(g加速度可加可不加),一局游戏时间为180s,结束后会有胜利提示。

【Scratch 3.0游戏】—— 乒乓弹球游戏_第1张图片

一、游戏设计思想

确定游戏规则后确定角色,需要的角色有,“球”,“玩家1”,“玩家2”,因为加入了分数显示和倒计时功能,还需要两个记录分数的角色,和一个倒计时角色,最后还有个胜利结果,也可用一个角色进行展示。

二、编写游戏

1、玩家1,2

       玩家1,2的造型可根据自己喜好选择,这里为了还原一点选择换了个实心长方形

                                      【Scratch 3.0游戏】—— 乒乓弹球游戏_第2张图片

运动方式很简单就是沿y轴上下移动,由于有两个玩家,并且两个玩家可以进行对战,所以要设置4个按键,以其中一个玩家移动为例:

【Scratch 3.0游戏】—— 乒乓弹球游戏_第3张图片

固定到一个初始坐标,根据角色的大小,将玩家的移动范围进行限制,避免发生移动出地图的问题,由于开始时是有任意一名玩家发球的,所以还要不停的发送玩家的坐标,让发球前小球跟随玩家移动,另外还设计了一个电脑玩家,可以单人进行对战,具体做法后面说。

2、球

主要功能都在球上,实现了:启示发球跟随玩家,计分,碰撞反弹,碰到玩家不同位置反射角度不同,重力加速度g,碰撞音效。

1.玩家随机发球

起始发球,球跟随玩家移动,在编写玩家时已将玩家y坐标不停的更新赋值给p2y,球只需不停更新为相应坐标即可做到跟随,还要做到随机发球,随机发球位置总共就两个x坐标,将两个x坐标存入列表,随机其下标进行随机读取,读取后,球随机出现在玩家1或2上,跟随移动等待发球,最后添加了一个变量来判断球是否已经发出。

【Scratch 3.0游戏】—— 乒乓弹球游戏_第4张图片

 

2、碰撞反弹

球需要碰到反弹的只有,上下边界,玩家1,2,碰到两侧则相应的玩家会加一分,(重力g可有可无)

【Scratch 3.0游戏】—— 乒乓弹球游戏_第5张图片

移动的步数就是球的移动速度,碰到玩家1或2的不同位置造成的反弹角度也会有所不同,碰撞音效可自行添加。

【Scratch 3.0游戏】—— 乒乓弹球游戏_第6张图片

碰到左右边缘的话,相应的玩家得分,也可直接用球的x轴坐标进行判断,其中等待2秒为,游戏中由一方玩家未接到球,系统重新发球的等待时间,最后一段为时间结束后球归为停止。

3、随机发球

游戏开始玩家未接到球,系统随机方向发球

【Scratch 3.0游戏】—— 乒乓弹球游戏_第7张图片

另个方向,分别都有发球范围。

3、比分

【Scratch 3.0游戏】—— 乒乓弹球游戏_第8张图片

需要两个角色进行玩家1和2的分数显示,一个角色中添加0~9数字图片,克隆来显示个位和十位,通过换造型进行分数显示

4、倒计时

倒计时用了计时器,通过规定游戏时间减去计时器时间,进行倒计时,用了3个角色,来显示百位,十位,个位,(实在没想出怎么用一个角色实现倒计时)

百位:

【Scratch 3.0游戏】—— 乒乓弹球游戏_第9张图片

十位:

【Scratch 3.0游戏】—— 乒乓弹球游戏_第10张图片

个位:

【Scratch 3.0游戏】—— 乒乓弹球游戏_第11张图片

5、胜利提示

【Scratch 3.0游戏】—— 乒乓弹球游戏_第12张图片

根据分数不同显示哪一方胜利(自行设计,我就随便找个角色用的)

6、电脑玩家

【Scratch 3.0游戏】—— 乒乓弹球游戏_第13张图片

过了中间线后电脑玩家进行移动,根据传回来的球坐标进行移动,没碰到球后,改变下一次碰球的位置,以改变每次碰球弹出的角度(提示:没有自动发球)。

 

三、总结

本篇就是简述了一下编写过程,会有些不完美之处,欢迎在评论去讨论。

 

 

你可能感兴趣的:(Scratch)