驴友花雕 发表于 4 天前

【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰

Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。

它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。

凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。







驴友花雕 发表于 4 天前

【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰

作为学习、练习与尝试,这里创建一个太空驱逐舰的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:太空驱逐舰

MicroPython实验参考代码

def on_a_pressed():
    global projectile
    projectile = sprites.create_projectile_from_sprite(img("""
            . . . . . . . .
            . . . . . . . .
            . . . . . . . .
            . . . . . . . .
            . . . 7 7 . . .
            . . . 7 7 . . .
            . . . 7 7 . . .
            . . . 7 7 . . .
            """),
      ship,
      0,
      -140)
    projectile.start_effect(effects.cool_radial, 100)
controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)

def on_on_overlap(sprite, otherSprite):
    sprite.destroy()
    otherSprite.destroy(effects.disintegrate)
    info.change_score_by(1)
sprites.on_overlap(SpriteKind.projectile, SpriteKind.enemy, on_on_overlap)

def on_on_overlap2(sprite2, otherSprite2):
    scene.camera_shake(4, 500)
    otherSprite2.destroy(effects.disintegrate)
    sprite2.start_effect(effects.fire, 200)
    info.change_life_by(-1)
sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap2)

projectile: Sprite = None
ship: Sprite = None
asteroids = [sprites.space.space_small_asteroid1,
    sprites.space.space_small_asteroid0,
    sprites.space.space_asteroid0,
    sprites.space.space_asteroid1,
    sprites.space.space_asteroid4,
    sprites.space.space_asteroid3]
ship = sprites.create(sprites.space.space_red_ship, SpriteKind.player)
ship.set_stay_in_screen(True)
ship.bottom = 120
controller.move_sprite(ship, 100, 100)
info.set_life(3)
effects.star_field.start_screen_effect()

def on_update_interval():
    global projectile
    projectile = sprites.create_projectile_from_side(asteroids, 0, 75)
    projectile.set_kind(SpriteKind.enemy)
    projectile.x = randint(10, 150)
game.on_update_interval(500, on_update_interval)

驴友花雕 发表于 4 天前

【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰

这段代码是用 MakeCode Arcade 编写的一个 太空驱逐舰射击游戏 的核心逻辑。玩家控制一艘太空战舰,在星空背景下移动并发射子弹,击毁飞来的小行星(敌人),同时避免与它们碰撞。代码逐段解析

1、按下 A 键发射子弹
python
def on_a_pressed():

    global projectile

    projectile = sprites.create_projectile_from_sprite(img("""..."""), ship, 0, -140)

    projectile.start_effect(effects.cool_radial, 100)

controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
创建一个子弹,从玩家战舰发射,速度为 -140(向上)。

添加一个炫酷的径向特效。

2、子弹击中敌人(得分)
python
def on_on_overlap(sprite, otherSprite):

    sprite.destroy()# 销毁子弹

    otherSprite.destroy(effects.disintegrate)# 敌人爆炸特效

    info.change_score_by(1)# 得分+1

sprites.on_overlap(SpriteKind.projectile, SpriteKind.enemy, on_on_overlap)

3、玩家碰到敌人(扣血)
python
def on_on_overlap2(sprite2, otherSprite2):

    scene.camera_shake(4, 500)# 屏幕震动

    otherSprite2.destroy(effects.disintegrate)# 敌人爆炸

    sprite2.start_effect(effects.fire, 200)# 玩家着火特效

    info.change_life_by(-1)# 扣除1点生命

sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap2)

5、创建玩家战舰
python
ship = sprites.create(sprites.space.space_red_ship, SpriteKind.player)

ship.set_stay_in_screen(True)# 限制在屏幕内

ship.bottom = 120# 初始位置靠近底部

controller.move_sprite(ship, 100, 100)# 启用移动控制

info.set_life(3)# 设置生命值为3

6、设置星空背景
python
effects.star_field.start_screen_effect()
添加动态星空背景,营造太空氛围。

7、每隔0.5秒生成一个敌人
python
def on_update_interval():

    global projectile

    projectile = sprites.create_projectile_from_side(asteroids, 0, 75)

    projectile.set_kind(SpriteKind.enemy)

    projectile.x = randint(10, 150)

game.on_update_interval(500, on_update_interval)
随机从小行星列表中选择一个图像。

从屏幕顶部以速度 75 向下飞来。

随机设置 X 坐标,制造不确定性。

驴友花雕 发表于 4 天前

【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰

图形编程参考实验程序


驴友花雕 发表于 4 天前

【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰

通过模拟器,调试与模拟运行



实验场景记录







驴友花雕 发表于 4 天前

【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰


页: [1]
查看完整版本: 【花雕动手做】基于 Kitronik 可编程开发板之太空驱逐舰