射擊幽浮是一款簡單的射擊小遊戲,遊戲開始後,畫面上方會出現一個逐漸往下移動的 UFO,使用者需要操控下方砲塔發射炮彈阻止幽浮往下移動,當砲彈擊中幽浮,幽浮會消失並重新從上方出現,再次向下移動,若幽浮碰到地面,遊戲結束,顯示得分。
如果使用 micro:bit 實作,遊戲操作步驟如下:
同時按下 AB 按鈕,開始遊戲 ( 或重新遊戲 )。
按下 A 按鈕,控制砲塔向左移動。
按下 B 按鈕,控制砲塔向右移動。
遊戲開始後按下 AB 按鈕,可以發射炮彈。
砲彈擊中幽浮,得分加 1,幽浮再度從最上方隨機位置出現。
幽浮抵達地面,遊戲結束,顯示得分。
input.onButtonPressed(Button.A, function () {
fire = 0
player.change(LedSpriteProperty.X, -1)
})
input.onButtonPressed(Button.AB, function () {
if (run == 0) {
run = 1
score = 0
fire = 0
game.resume()
ufo.set(LedSpriteProperty.X, randint(0, 4))
ufo.set(LedSpriteProperty.Y, 0)
ufo.set(LedSpriteProperty.Brightness, 255)
} else {
fire = 1
}
})
input.onButtonPressed(Button.B, function () {
fire = 0
player.change(LedSpriteProperty.X, 1)
})
let score = 0
let fire = 0
let ufo: game.LedSprite = null
let player: game.LedSprite = null
let run = 0
run = 0
player = game.createSprite(2, 4)
let bullet = game.createSprite(0, 4)
bullet.set(LedSpriteProperty.Brightness, 0)
ufo = game.createSprite(2, 0)
ufo.set(LedSpriteProperty.Brightness, 0)
basic.forever(function () {
if (fire == 1) {
fire = 0
bullet.set(LedSpriteProperty.X, player.get(LedSpriteProperty.X))
bullet.set(LedSpriteProperty.Brightness, 30)
for (let index = 0; index < 4; index++) {
bullet.change(LedSpriteProperty.Y, -1)
basic.pause(100)
}
}
bullet.set(LedSpriteProperty.Brightness, 0)
bullet.set(LedSpriteProperty.Y, 4)
})
basic.forever(function () {
if (run == 1) {
if (bullet.isTouching(ufo)) {
score += 1
ufo.set(LedSpriteProperty.X, randint(0, 4))
ufo.set(LedSpriteProperty.Y, 0)
}
}
})
basic.forever(function () {
if (run == 1) {
ufo.change(LedSpriteProperty.Y, 1)
if (ufo.get(LedSpriteProperty.Y) == 4) {
run = 0
game.pause()
while (run == 0) {
basic.showNumber(score)
}
}
basic.pause(500)
}
})