魂斗罗

张砷镓 Lv. 2
复制链接 & 嵌入
链接
复制链接
嵌入网页
复制嵌入代码
原创认证
进入全屏模式
载入作品
正在创建积木……
载入角色……
载入声音……
加载扩展……
正在创建积木……
呼唤小猫……
传送Nano……
给Gobo充气 …
准备表情……
还没有人打赏!
最后修改于2025年01月26日

操作说明

左右键移动,上键跳跃,下键向下跳跃

备注与谢志

开发人员:黄泊闻、鄢语涵、牛轲冉
指导老师:张砷镓

开发日志

变量

已死

造型帧 [NPC]

瞄准方向 [NPC]

攻击间隔 [NPC]

攻击帧 [NPC]

子弹方向

子弹X

子弹Y

子弹类型

本体 [敌人子弹]

😊

帧 [敌人子弹]

地图Y

地图X

 

角色

Stage

造型

封面

 

代码

当 绿旗 被点击

重复执行

播放声音 原版魂斗罗配音_耳聆网_[声音ID:36740] 等待播完

 

当 绿旗 被点击

换成 封面 背景

等待 1 秒

等待 3 秒

 

当接收到 清屏

 

主角

造型

hin

翻滚3

翻滚2

翻滚1

翻滚0

 

声音

开枪

 

代码

当 绿旗 被点击

隐藏

将 {已死} 设为 1

 

当按下 空格 键

将 {攻击中} 设为 1

克隆 子弹

等待 0.2 秒

将 {攻击中} 设为 0

如果 ({已死} = 0) 那么

播放声音 开枪

将 {攻击中} 设为 1

克隆 子弹

等待 0.2 秒

将 {攻击中} 设为 0

 

当接收到 清屏

隐藏

 

当接收到 死亡

等待 2 秒

广播 淡出 并等待

广播 连接 lv 和 {关卡}

广播 淡入

 

当接收到 游戏开始

面向 90 方向

将 {已死} 设为 0

将 {可穿越} 设为 0

移到最 前面

移到最 前面

 

当接收到 过关

停止 该角色的其他脚本

 

当接收到 死亡

停止 该角色的其他脚本

换成 死亡0 造型

重复执行 4 次

下一个造型

等待 0.2 秒

广播 淡出 并等待

广播 连接 lv 和 {关卡}

广播 淡入

 

当接收到 游戏胜利

停止 该角色的其他脚本

广播 淡出 并等待

广播 清屏 并等待

换成 胜利 背景

广播 淡入

 

定义 更换造型

如果 ({已死} = 1) 那么

如果 (向上取整(({楨} / 4)) > 4) 那么

换成 连接 死亡 和 4 造型

否则

换成 连接 死亡 和 向上取整(({楨} / 4)) 造型

停止 这个脚本

如果 ({攻击中} = 1) 那么

如果 (({攻击中} = 1) 与 ({站在地上} = 1)) 那么

换成 连接 翻滚 和 向上取整(({楨} / 8)) 除以 8 的余数 造型

换成 连接 翻滚 和 向上取整(({楨} / 4)) 除以 4 的余数 造型

 

定义 尝试爬坡

将x坐标增加 (-1 * ({x速度} / 10))

将x坐标增加 (-1 * ({x速度} / 10))

 

定义 X移动

如果 ({已死} = 1) 那么

停止 这个脚本

执行 尝试爬坡

执行 检测能否穿越

如果 ({可穿越} = 0) 那么

执行 尝试爬坡

 

定义 垂直

将 {调整值} 设为 (75 - y坐标)

将 {调整值} 设为 四舍五入((75 - y坐标))

如果 (y坐标 < -75) 那么

将 {调整值} 设为 (-75 - y坐标)

将 {调整值} 设为 四舍五入((-75 - y坐标))

 

定义 死亡

如果 ({已死} = 0) 那么

将 {楨} 设为 0

将 {已死} 设为 1

将 {y速度} 设为 10

广播 死亡

 

定义 死亡判断

如果 (y坐标 < -180) 那么

广播 死亡

如果 (y坐标 < -177) 那么

执行 死亡

如果 碰到 NPC? 那么

广播 死亡

执行 死亡

如果 碰到 敌人子弹? 那么

广播 死亡

执行 死亡

 

定义 检测能否穿越

否则

将 {可穿越} 设为 0

 

定义 y移动

将 {y速度} 增加 -2

如果 ({y速度} > -20) 那么

将 {y速度} 增加 -2

如果 (({可穿越} = 1) 与 碰到 刚体? 不成立) 那么

将 {可穿越} 设为 0

如果 (({关卡} = 1) 与 (按下 ↓ 键? 与 (y坐标 > -122))) 那么

将 {可穿越} 设为 1

如果 (按下 ↑ 键? 与 ({站在地上} = 1)) 那么

如果 ({在水中} = 1) 那么

将 {y速度} 设为 14

否则

如果 ({已死} = 0) 那么

 

定义 滚屏

将 {调整值} 设为 0

如果 (x坐标 > 50) 那么

将 {调整值} 设为 (50 - x坐标)

如果 (x坐标 < -50) 那么

将 {调整值} 设为 (-50 - x坐标)

如果 (x坐标 > 25) 那么

将 {调整值} 设为 四舍五入((25 - x坐标))

如果 (x坐标 < -25) 那么

将 {调整值} 设为 四舍五入((-25 - x坐标))

 

刚体

代码

当接收到 清屏

隐藏

 

装饰

代码

当接收到 清屏

隐藏

 

传送门

代码

当接收到 lv2

将 {Y} 设为 (14 - -545)

将 {Y} 设为 (-37 - -597)

 

当接收到 tick

将 虚像 特效设定为 50

移到 x:({X} + {地图X}) y:({Y} + {地图Y})

如果 ((x坐标 = ({X} + {地图X})) 与 (y坐标 = ({Y} + {地图Y}))) 那么

将 虚像 特效设定为 100

移到 x:({X} + {地图x}) y:({Y} + {地图y})

如果 ((x坐标 = ({X} + {地图x})) 与 (y坐标 = ({Y} + {地图y}))) 那么

 

当接收到 lv5

当接收到 lv3

 

定义 过关

广播 过关

广播 淡出 并等待

广播 连接 lv 和 ({关卡} + 1)

广播 淡入

 

NPC

造型

士兵下0

士兵上0

士兵中0

炮台0

炮台1

炮台2

炮台3

炮台4

炮台5

炮台6

士兵0

士兵1

士兵2

爆炸0

爆炸1

 

代码

当接收到 打中NPC

如果 碰到 子弹? 那么

将 {血量} 增加 -1

如果 ({血量} < 1) 那么

删除此克隆体

广播 子弹消失

 

当接收到 lv2

执行 刷新NPC 士兵下2 x (53 - 333) y (19 - 376) x最小值 (53 - 333) x最大值 (53 - 333)

执行 刷新NPC 士兵上2 x (63 - 49) y (-77 - 440) x最小值 (63 - 49) x最大值 (63 - 49)

执行 刷新NPC 士兵下 x (-2 - -21) y (-140 - -7) x最小值 (-2 - -21) x最大值 (-2 - -21)

执行 刷新NPC 士兵中 x (-82 - 560) y (-78 - -615) x最小值 (-82 - 560) x最大值 (-82 - 560)

执行 刷新NPC 士兵中 x (-82 - 508) y (-78 - -615) x最小值 (-82 - 508) x最大值 (-82 - 508)

执行 刷新NPC 士兵zho x (4 - 144) y (-78 - -583) x最小值 (4 - 144) x最大值 (4 - 144)

执行 刷新NPC 士兵 x (53 - 333) y (19 - 376) x最小值 (53 - 333) x最大值 (53 - 333)

执行 刷新NPC 士兵 x (63 - 49) y (-77 - 440) x最小值 (63 - 49) x最大值 (63 - 49)

执行 刷新NPC 士兵 x (-2 - -21) y (-140 - -7) x最小值 (-2 - -21) x最大值 (-2 - -21)

执行 刷新NPC 士兵 x (-82 - 560) y (-78 - -615) x最小值 (-82 - 560) x最大值 (-82 - 560)

执行 刷新NPC 士兵 x (-82 - 508) y (-78 - -615) x最小值 (-82 - 508) x最大值 (-82 - 508)

执行 刷新NPC 士兵 x (4 - 144) y (-78 - -583) x最小值 (4 - 144) x最大值 (4 - 144)

 

当接收到 清屏

隐藏

 

当接收到 tick

如果 ({血量} < 1) 那么

删除此克隆体

移到最 前面

显示

如果 ({攻击帧} > 0) 那么

将 {攻击帧} 增加 -1

如果 ({类型} = 跑步者) 不成立 那么

执行 开火

执行 巡逻

换成 连接 {类型} 和 向上取整(({楨} / 4)) 除以 {动画帧数} 的余数 造型

如果 碰到 子弹? 那么

广播 打中NPC

将 {血量} 增加 -1

如果 ({类型} = 跑步者) 那么

执行 巡逻

否则

执行 瞄准

将 {帧} 增加 1

执行 更新造型

 

当接收到 lv1

执行 刷新NPC 士兵上 x (40 - -355) y (-121 - 35) x最小值 (40 - -355) x最大值 (40 - -355)

执行 刷新NPC 士兵上 x (-6 - -1045.1) y (-121 - 35) x最小值 (-6 - -1045.1) x最大值 (-6 - -1045.1)

执行 刷新NPC 士兵上 x (57 - -4705) y (-80 - -53) x最小值 (57 - -4705) x最大值 (57 - -4705)

执行 刷新NPC 士兵中 x (64 - -2420) y (-17 - -53) x最小值 (64 - -2420) x最大值 (64 - -2420)

执行 刷新NPC 士兵中 x (38 - -2833) y (48 - -53) x最小值 (38 - -2833) x最大值 (38 - -2833)

执行 刷新NPC 士兵 x (40 - -355) y (-121 - 35) x最小值 (40 - -355) x最大值 (40 - -355)

执行 刷新NPC 士兵 x (-6 - -1045.1) y (-121 - 35) x最小值 (-6 - -1045.1) x最大值 (-6 - -1045.1)

执行 刷新NPC 士兵 x (57 - -4705) y (-80 - -53) x最小值 (57 - -4705) x最大值 (57 - -4705)

执行 刷新NPC 士兵 x (64 - -2420) y (-17 - -53) x最小值 (64 - -2420) x最大值 (64 - -2420)

执行 刷新NPC 士兵 x (38 - -2833) y (48 - -53) x最小值 (38 - -2833) x最大值 (38 - -2833)

 

当作为克隆体启动时

移到最 前面

将 {攻击间隔} 设为 60

将 {血量} 设为 5

将 {血量} 设为 3

将 {攻击间隔} 设为 90

将 {攻击帧} 设为 15

面向 -90 方向

 

定义 开火

将 {😊} 增加 1

如果 ({攻击帧} = 0) 那么

将 {攻击帧} 设为 {攻击间隔}

将 {子弹方向} 设为 {瞄准方向}

将 {子弹类型} 设为 {类型}

将 {子弹X} 设为 {X}

将 {子弹Y} 设为 {Y}

克隆 敌人子弹

 

定义 瞄准

面向 主角

如果 {类型} 包含 士兵? 那么

如果 (绝对值(方向) < 60) 那么

将 {造型帧} 设为 0

将 {瞄准方向} 设为 (45 * (方向 / 绝对值(方向)))

停止 这个脚本

如果 (绝对值(方向) < 120) 那么

将 {造型帧} 设为 1

将 {瞄准方向} 设为 (90 * (方向 / 绝对值(方向)))

停止 这个脚本

将 {造型帧} 设为 2

将 {瞄准方向} 设为 (135 * (方向 / 绝对值(方向)))

否则

如果 (绝对值(方向) < 15) 那么

将 {造型帧} 设为 0

将 {瞄准方向} 设为 0

停止 这个脚本

如果 (绝对值(方向) < 45) 那么

将 {瞄准方向} 设为 (30 * (方向 / 绝对值(方向)))

将 {造型帧} 设为 1

停止 这个脚本

如果 (绝对值(方向) < 75) 那么

将 {造型帧} 设为 2

将 {瞄准方向} 设为 (60 * (方向 / 绝对值(方向)))

停止 这个脚本

如果 (绝对值(方向) < 105) 那么

将 {瞄准方向} 设为 (90 * (方向 / 绝对值(方向)))

将 {造型帧} 设为 3

停止 这个脚本

如果 (绝对值(方向) < 135) 那么

将 {瞄准方向} 设为 (120 * (方向 / 绝对值(方向)))

将 {造型帧} 设为 4

停止 这个脚本

如果 (绝对值(方向) < 165) 那么

将 {瞄准方向} 设为 (150 * (方向 / 绝对值(方向)))

将 {造型帧} 设为 5

停止 这个脚本

将 {瞄准方向} 设为 (180 * (方向 / 绝对值(方向)))

将 {造型帧} 设为 6

 

定义 更新造型

如果 ({类型} = 跑步者) 那么

将 {造型帧} 设为 向上取整(({楨} / 4)) 除以 {动画帧数} 的余数

换成 连接 {类型} 和 {造型帧} 造型

 

子弹

造型

image (42)

 

代码

当 绿旗 被点击

隐藏

将 {X} 设为 10000

将 {Y} 设为 10000

 

当接收到 tick

如果 碰到 NPC? 那么

广播 打中NPC

 

当接收到 游戏开始

删除此克隆体

 

当接收到 清屏

删除此克隆体

 

当接收到 子弹消失

当接收到 打中NPC

如果 碰到 NPC? 那么

 

当作为克隆体启动时

将y坐标增加 10

将y坐标增加 9

将 {X速度} 设为 12

将 {X速度} 设为 15

否则

将 {X速度} 设为 -12

将 {X速度} 设为 -15

 

敌人子弹

造型

image (42)

士兵

炮台

 

代码

当 绿旗 被点击

隐藏

 

当 绿旗 被点击

隐藏

将 {本体} 设为 1

 

当接收到 游戏开始

删除此克隆体

 

当接收到 清屏

删除此克隆体

 

当接收到 tick

如果 ({本体} = 1) 那么

隐藏

停止 这个脚本

移到 x:({X} + {地图x}) y:({Y} + {地图y})

如果 ((x坐标 = ({X} + {地图x})) 与 (y坐标 = ({Y} + {地图y}))) 那么

显示

否则

隐藏

移动 5 步

如果 (碰到 舞台边缘? 与 ({帧} > 10)) 那么

隐藏

删除此克隆体

将 {X} 设为 (x坐标 - {地图x})

将 {Y} 设为 (y坐标 - {地图y})

将 {帧} 增加 1

 

当作为克隆体启动时

将 {本体} 设为 0

移到最 前面

显示

将 {X} 设为 {子弹X}

将 {Y} 设为 {子弹Y}

面向 {子弹方向} 方向

如果 {子弹类型} 包含 士兵? 那么

换成 士兵 造型

否则

换成 炮台 造型

将 {帧} 设为 0