第三课 通过撞球游戏了解键盘事件和侦测代码块
一、制作角色
撞球游戏,需要制作两种不同颜色的球。通过“添加角色”->“绘制”,在画布上画圆,填充成纯色【之所以要纯色的,是为了学习碰撞侦测准备的】就可以了。
比如,画一个稍大一些的蓝色球,一个稍小一些的紫色球【两个造型,紫色和黄色】。
![v2-b05007ec1c1900a1f0e79fe10343eb57_b.jpg](https://img-blog.csdnimg.cn/img_convert/cd9df0c2386f0573dd70280812ee1250.png)
![v2-a69af3726e8335c1b269df59696d3e1f_b.jpg](https://img-blog.csdnimg.cn/img_convert/10b0e15fb4929a607a845493052376d6.png)
复制紫色球的角色【由于还没学习克隆的概念,这里只能使用复制角色的方式】,最终是一个大球n个小球。
![v2-fee3cdded9b50e9d51919d3b2cb73f1d_b.jpg](https://img-blog.csdnimg.cn/img_convert/7eb132173eb593bc911cff9d6bfb8163.png)
二、撞球游戏
游戏设定:用键盘的“上下左右”键操作蓝球【大球】撞击【小球】;如果撞上【紫色球】大球变大,如果撞上【黄色球】大球变小;小球被撞上后会消失。
1、通过【键盘事件】控制大球上下左右移动。
在【事件】中选择 4个【当按下x键】事件,然后分别指定成【上下左右】键。
![v2-d52bed44514a93e52f738f70b2a40750_b.jpg](https://img-blog.csdnimg.cn/img_convert/03085b2f66834eddf83b66cc70d35c3d.png)
【上键】事件下,添加【将y坐标增加10】
【下键】事件下,添加【将y坐标增加-10】
【左键】事件下,添加【将x坐标增加-10】
【右键】事件下,添加【将x坐标增加10】
![v2-35f81e08f5e1dbbd44b7d119014d0ddf_b.jpg](https://img-blog.csdnimg.cn/img_convert/2c3fcb5c90b90a3bb59ea037515d6c93.png)
2、在【大球】上,通过【侦测代码块】判定碰撞并触发【变大】或【缩小】
添加【碰到颜色?】代码块,精确的颜色最好通过【吸管】功能获取。这个代码块的作用是:侦测所属角色是否碰到指定颜色【我们这里是紫色的球】;一 旦碰上,则返回判断为【真】,否则返回【假】。
这种侦测颜色碰撞的代码块,需要与控制代码块【如果-那么】一起配合使用:就是把【侦测】代码块拖到【如果-那么】的【六边形条件框】中。
![v2-ae15b6762b1bb154c110fac18f58e1e6_b.jpg](https://img-blog.csdnimg.cn/img_convert/76bcf358dc88a218d806ced128d3abf0.png)
添加紫色和黄色的碰撞侦测,并添加【外观】中的【将大小增加】代码块。
撞到【紫色】,【将大小增加40】
撞到【黄色】,【将大小增加-40】,负数代表缩小
![v2-f572b8d8eedde5cecff41228ab9315be_b.jpg](https://img-blog.csdnimg.cn/img_convert/9b65aeb56327447605a6ae6b19b74157.png)
3、在【小球】上,添加【侦测】代码块,如果碰到【大球】就【隐藏】自己。
![v2-8b8c8f1cf1f48021a069ca66abf20177_b.jpg](https://img-blog.csdnimg.cn/img_convert/97b6de47792829b4cb5c76198ff72b83.png)
三、最终效果
scratch项目链结:https://scratch.mit.edu/projects/360971432/