第52课 星际争霸
第20章 星际争霸
星际争霸

启动思维

在一片漆黑的外太空,你独自驾驶着炫酷的战斗机,迎战不断进攻的各种敌机。你需要将它们消灭在太空中,以保卫星球的安宁。

yuyucoding
构思策划
怎么设计:
似乎星际争霸这类游戏都是这样的,不断有各种敌机迎面袭来,作为战士的你披甲上阵,驾驶战斗机抵御入侵。
(1)设计游戏主角,以及进行相关初始化操作。
(2)战斗机可以跟随操作移动。
(3)完成战斗机碰撞爆炸的条件设置。
(4)战斗机发射子弹,实现子弹对敌机造成伤害的效果。
(5)设计不同型号敌机的造型、爆炸效果和血量。
(6)完成敌机被子弹攻击,血量为零后的爆炸设置。

素材准备
设计角色:
(1)需要一架战斗机作为主角。

(2)设计3架不同的敌机。



程序设计


提示

有了,就可以很便捷地将一个角色移动到另一个角色的位置。

(6)子弹发射后,会朝着舞台顶端一直飞行,但是在什么时候消失呢?

碰到舞台边缘。
击中敌机。
回答正确。
先来设置一个简单的消失条件——碰到边缘。
接着,完成击中敌机的判断,这和战斗机被敌机撞击的判断是一样的,只要击中任何一架敌机,子弹就会消失。

(7)战斗机和子弹都完成了,接下来进行敌机的脚本编写。先来到小敌机角色,完成初始化和克隆设置。

(8)每一架敌机都会在舞台顶端出现,然后俯冲下来。设置敌机的初始位置和血量。

提示
这里创建的小敌机血量仅适用于当前角色,因为每一架克隆体敌机都有属于自己的血量。


(11)遇到问题啦,虽然敌机的血量是0,但是它并没有炸毁呀。看来还需要编写敌机被炸毁的效果——从炸毁到消失的过程。
(12)各种敌机的脚本都是一样的,只不过有些属性不同。
中敌机飞行速度更慢,被子弹击中后减血量更少,被击毁后得分更多。

①克隆中敌机:

②迎面而来的中敌机:

③碰到边缘,删除中敌机克隆体:

④中敌机被击中,血量减少:

⑤击毁中敌机:


完善细节

(1)添加导弹角色。

(2)设置导弹的下落。

(3)收集导弹。

(4)按下空格键,发射导弹。

(5)导弹发射以后,屏幕上的敌机全部被炸毁。回到每个敌机角色,完成被炸毁的效果代码。接收到全屏爆炸广播后,小敌机有两个爆炸造型,造型切换两次。

中敌机有3个爆炸造型,造型切换3次,完成整个爆炸效果。

大敌机有4个爆炸造型,造型切换4次,完成整个爆炸效果。

测试程序,修改
Bug
这个游戏有很多的代码,因此在编写的过程中可能会有很多Bug。但是只要你多次去体验游戏,注意击毁敌机的效果,观察每一架飞机的状态,感受导弹被收集和发射后的变化,就可以发现程序的不足,然后思考并改进它。
温故知新

(1)
通过这个积木块,既可以获取鼠标水平方向上的位置,也可以实现跟随鼠标水平移动。

(2)
逻辑运算符——或积木块。
只要两个条件中的任意一个成立,则整个条件都成立。

(3)
表示角色的属性的积木块,有了它,就可以知道每一个角色的属性。
综合练习
(1)角色在执行如右图所示的程序后,最终面向的方向是()。

A.面向0方向
B.面向90方向
C.面向180方向
D.面向-90方向
(2)按照2、5、7、12、?、31的规律来看,问号处应该填什么?()
A. 15
B. 19
C. 21
D. 23
(3)角色初始位置坐标是(0,0),执行如右图所示的程序后,角色会出现在什么位置上?()

A. x坐标为100,y坐标为50
B. x坐标为100,y坐标为70
C. x坐标为120,y坐标为50
D. x坐标为120,y坐标为70
(4)现在红绿灯的状态为绿灯,执行如右图所示的程序25秒后,是什么灯亮?()

A.红灯亮
B.绿灯亮
C.红绿灯都不亮
D.红绿灯一起亮
(5)以下程序的输出结果为()。

A. 24
B. 15
C. 12
D. 20
(6)已知角色是显示状态,单击小绿旗后,以下哪个程序可以使角色继续显示在舞台中?()

(7)角色列表区如下图所示,对应舞台区上角色的显示效果是()。


(8)按照图中规则,第4个图形应该填入什么数字?()

A.左:18,右:27
B.左:10,右:15
C.左:27,右:27
D.左:9,右:27
(9)下面积木块的运行结果是()。

A.好好学习天天向上
B.习天
C. 4天
D.习4天
(10)角色通过“画笔”模块在舞台区绘制了一条线段,下列哪个选项可以消除该线段?()

A.

B.

C.

D.