课程首页 › 第4部分 › 第19章

第51课 贪吃蛇大作战

第19章 贪吃蛇大作战

配套项目课件

这些项目会用到本课的知识点,学完可以动手做

第19章 贪吃蛇大作战

贪吃蛇大作战

插图

启动思维

插图

yuyucoding

构思策划

实现大作战:

设计游戏的关键是要先明确游戏规则,再编写代码来实现功能。

(1)设计一个食物角色和两条贪吃蛇角色,进行竞技PK。

(2)设计两组控制按键,红方为w、a、s、d按键,蓝方为↑、←、↓、→按键。

(3)贪吃蛇按照吃到食物数量的比例变长。

(4)如果蛇头碰到对方的身体,那么对方获得一分。

(5)丢分的一方随机位置复活,继续游戏。

插图

素材准备

设计角色:

在这个游戏中,不仅仅有两条贪吃蛇角色,还有食物。

插图

关于食物,我使用的是苹果,只需要调整一下角色大小就可以了。

插图

关于贪吃蛇,需要绘制两条,红方贪吃蛇和蓝方贪吃蛇,并在蛇头上绘制自己喜欢的图案。

插图

注意,两条贪吃蛇要使用不同的颜色和图案,否则就成了同一条蛇。

提示

想要保证蛇头和蛇尾大小一致,最好使用复制工具,因为重新绘制大小可能就不同了。

程序设计

(1)添加一个方格背景。当然也可以选择你觉得合适的背景,不过最好不要有太多的颜色。

插图

(2)贪吃蛇是靠着吞食苹果变长的,因此需要在舞台上克隆出很多苹果,就像这样。

插图

(3)创建苹果数量变量来记录舞台上苹果的数量,并完成苹果角色的初始化。

插图

(4)怎么保持舞台区的苹果数量是充足稳定的呢?例如舞台上始终有50个苹果,不能让贪吃蛇吃着吃着就没有苹果了。

①如果一次性克隆50个苹果,那么贪吃蛇就会把苹果吃光。

②如果是按照等待时间重复执行克隆,那么苹果会越来越多。

③要是能做到一直判断苹果数量就好了,少了多少个就克隆多少个。

如果有50个苹果,被贪吃蛇吃了10个,请问还有几个苹果呢?

答案是。

50-10=40

那么需要克隆几个才能到达50个呢?

答案是50-40=10,也就是用50减去现在的苹果数量,得到的就是需要克隆的数量。

插图

完成重复克隆苹果的代码。

插图

(5)将克隆出来的苹果随机地移动到舞台中。

插图
插图

(7)贪吃蛇的移动和长度控制是通过不断地克隆和删除克隆体来完成的。

贪吃蛇向前爬行的过程中,每时每刻都在克隆自己——向前克隆并从后删除克隆体就实现了前进的效果。给每一个克隆体赋予一个生命周期,通过调节克隆体的生命周期来控制贪吃蛇的长度。

例如:贪吃蛇每0.01秒克隆一节,克隆体到了0.05秒就删除自己。前0.04秒,贪吃蛇克隆自己;到了第0.05秒,删除第一节克隆体;到了第0.06秒,删除第二节克隆体。

插图
插图

克隆体的生命周期即为删除克隆体的间隔时间。克隆体的生命周期越长,克隆体越多,贪吃蛇的长度也就越长。

插图

(9)通过调整删除克隆体的时间来调节尾巴的数量,控制贪吃蛇的长度。

插图

(10)不要忘记贪吃蛇是吃苹果的,苹果碰到贪吃蛇后将会消失,同时贪吃蛇的长度时间变量将会增加,这样贪吃蛇的长度就变长了。

选中苹果角色,编写脚本。

插图

(11)完成贪吃蛇的克隆后,编写贪吃蛇移动程序脚本,相信这段代码是难不倒你的。

插图

(12)如何获得得分呢?想尽一切办法,让对方的蛇头触碰到你的蛇尾,这就要比拼操作速度了。

如果你的蛇头触碰到对方的蛇尾,那么对方将获得一分,同时你也会变回初始长度,并在随机位置复活。

插图
插图

(13)完成红方角色代码后,继续完成蓝方代码。

①蓝方初始化:

插图

②蓝方贪吃蛇长度:

插图

③红方用↑、↓、←、→按键控制移动,蓝方用w、s、a、d按键控制移动。

插图
插图

完善细节

这个游戏涉及算法,尤其是蛇身长度变化的计算。作品创作完成后,记得回头再去思索一番关于蛇身长度的计算方式。同时留两个思考题,以调整游戏的体验性。

(1)在两条蛇相碰的时候,是否可以增加一些视觉效果?

(2)能否设计一些道具来增加游戏的趣味性?

测试程序,修改

Bug

在这款游戏中,需要重点测试的环节有3个:

(1)贪吃蛇会不会按照控制的方向移动?

(2)贪吃蛇吃到苹果后,长度会不会发生变化?

(3)两蛇相互碰撞的时候,会达到我们想要的效果吗?

测试一下吧,如果整个游戏效果和你想象的一样,那么恭喜你,你完成了这次挑战!

温故知新

插图

(1)判断按键是否按下,根据不同的按键执行不同的程序。

通常和如果那么……积木块组合使用。

插图
插图

(2)有时候仅靠角色碰到判断还不足以支持游戏的碰撞判断,这个时候可以使用两种颜色的碰到进行判断。

综合练习

(1)下列哪个积木块能判断图中两个角色之间是否发生了碰撞?()

插图
插图

A.

插图

B.

插图

C.

D.以上三项都可以

(2)以下脚本中能够实现按下空格键后让角色切换造型的是()。

插图

(3)下图为小猫的初始方向,哪个积木块可以让小猫面向正右方?()

插图

(4)当我们要切换角色造型时,需要用到下面哪个模块中的积木块?()

A.运动模块

B.控制模块

C.事件模块

D.外观模块

(5)关于克隆说法错误的是()。

A.克隆体会具备母体的一切属性

B.每个角色都可以克隆自己

C.克隆体和母体共享除当克隆体启动时和当小绿旗被点击控制之外的全部脚本

D.每克隆出一个克隆体,角色区就会多出一个角色

(6)在不改变音量的情况下,使用哪个按钮能让角色播放的声音变小?()

插图

A.

插图

B.

插图

C.

插图

D.

(7)下图中哪个按钮可以添加新背景?()

插图

A.A

B.B

C.C

D.D

(8)执行哪段程序可以让小猫移到苹果所在的位置?()

插图

(9)下面哪个程序可以实现小猫一边唱歌一边左右摇摆?()

插图

(10)下面左图为小猫的初始位置,旋转方式为任意旋转,执行哪段程序可以达到右图所示的效果?()

插图