教学原文参考:射击幽浮
这篇文章会介绍如何使用「建立游戏角色」、「游戏角色座标」、「游戏角色碰撞」、「变数」、「[重复回圈」、「逻辑判断」等积木,在 micro:bit 实作一个射击幽浮的射击小游戏。
射击幽浮是一款简单的射击小游戏,游戏开始後,画面上方会出现一个逐渐往下移动的 UFO,使用者需要操控下方炮塔发射炮弹阻止幽浮往下移动,当炮弹击中幽浮,幽浮会消失并重新从上方出现,再次向下移动,若幽浮碰到地面,游戏结束,显示得分。
如果使用 micro:bit 实作,游戏操作步骤如下:
- 同时按下 AB 按钮,开始游戏 ( 或重新游戏 )。
- 按下 A 按钮,控制炮塔向左移动。
- 按下 B 按钮,控制炮塔向右移动。
- 游戏开始後按下 AB 按钮,可以发射炮弹。
- 炮弹击中幽浮,得分加 1,幽浮再度从最上方随机位置出现。
- 幽浮抵达地面,游戏结束,显示得分。
当启动时,先定义游戏启动与游戏角色的变数:
因为按下 AB 按钮有两种动作,一种是启动游戏,另一种是发射炮弹,所以程序要加入逻辑判断:
接着设计按下 A 按钮和 B 按钮时,移动炮塔的程序:
新增一个重复无限次积木,制作炮弹移动的程序:
新增第二个重复无限次积木,制作炮弹打到幽浮的程序:
最後新增第三个重复无限次积木,制作幽浮往下移动的程序:
完成後,启动 micro:bit,就可以开始进行设计幽浮的游戏。
范例解答:射击幽浮
为什麽要使用「游戏角色」呢?
因为游戏角色积木很适合处理「互相碰撞」的状况,也可以很简单的让游戏角色彼此不会互相干扰,对於同一个画面里,具有许多不同方向、不同移动速度的角色说,是相当方便的功能。
为什麽要使用「游戏暂停」和「游戏继续」呢?
因为使用了「游戏角色」,如果不将游戏暂停,角色的 LED 灯会影响画面显示,进而造成得分无法顺利显示的状况 ( 只会显示一次就消失 )。
为什麽不使用内建的「游戏得分」呢?
如果使用了内建的「游戏得分」,显示得分後会造成「游戏结束」,然而内建的「游戏结束」必须重新启动 micro:bit 才能再次游戏,所以在这个范例就不使用「游戏得分」。
大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!
<<: [前端暴龙机,Vue2.x 进化 Vue3 ] Day14.监听器
Outline: Templates The standard library <vector...
Use your model with the prediction API 昨天我们已经安装好Az...
学习Vim、VSCodeVim的历程&写书探索的一些经历 [系列文目录] 相信不少人最早接触Vim,...
注册帐号 首先要注册 npm 帐号 注册页面 注册完後,登入你的帐号 npm login 成功後会显...
在 Jetpack Compose 的官方文件中,拖曳手势操作是这样子使用的: Box(modifi...