43浏览
查看: 43|回复: 5

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

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

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

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

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

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

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

驴友花雕  中级技神
 楼主|

发表于 3 天前

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

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

MicroPython实验参考代码

  1. def on_a_pressed():
  2.     global projectile
  3.     projectile = sprites.create_projectile_from_sprite(img("""
  4.             . . . . . . . .
  5.             . . . . . . . .
  6.             . . . . . . . .
  7.             . . . . . . . .
  8.             . . . 7 7 . . .
  9.             . . . 7 7 . . .
  10.             . . . 7 7 . . .
  11.             . . . 7 7 . . .
  12.             """),
  13.         ship,
  14.         0,
  15.         -140)
  16.     projectile.start_effect(effects.cool_radial, 100)
  17. controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
  18. def on_on_overlap(sprite, otherSprite):
  19.     sprite.destroy()
  20.     otherSprite.destroy(effects.disintegrate)
  21.     info.change_score_by(1)
  22. sprites.on_overlap(SpriteKind.projectile, SpriteKind.enemy, on_on_overlap)
  23. def on_on_overlap2(sprite2, otherSprite2):
  24.     scene.camera_shake(4, 500)
  25.     otherSprite2.destroy(effects.disintegrate)
  26.     sprite2.start_effect(effects.fire, 200)
  27.     info.change_life_by(-1)
  28. sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap2)
  29. projectile: Sprite = None
  30. ship: Sprite = None
  31. asteroids = [sprites.space.space_small_asteroid1,
  32.     sprites.space.space_small_asteroid0,
  33.     sprites.space.space_asteroid0,
  34.     sprites.space.space_asteroid1,
  35.     sprites.space.space_asteroid4,
  36.     sprites.space.space_asteroid3]
  37. ship = sprites.create(sprites.space.space_red_ship, SpriteKind.player)
  38. ship.set_stay_in_screen(True)
  39. ship.bottom = 120
  40. controller.move_sprite(ship, 100, 100)
  41. info.set_life(3)
  42. effects.star_field.start_screen_effect()
  43. def on_update_interval():
  44.     global projectile
  45.     projectile = sprites.create_projectile_from_side(asteroids[randint(0, len(asteroids) - 1)], 0, 75)
  46.     projectile.set_kind(SpriteKind.enemy)
  47.     projectile.x = randint(10, 150)
  48. game.on_update_interval(500, on_update_interval)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 天前

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

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

1、按下 A 键发射子弹
python
  1. def on_a_pressed():
  2.     global projectile
  3.     projectile = sprites.create_projectile_from_sprite(img("""..."""), ship, 0, -140)
  4.     projectile.start_effect(effects.cool_radial, 100)
  5. controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
复制代码

创建一个子弹,从玩家战舰发射,速度为 -140(向上)。

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

2、子弹击中敌人(得分)
python
  1. def on_on_overlap(sprite, otherSprite):
  2.     sprite.destroy()  # 销毁子弹
  3.     otherSprite.destroy(effects.disintegrate)  # 敌人爆炸特效
  4.     info.change_score_by(1)  # 得分+1
  5. sprites.on_overlap(SpriteKind.projectile, SpriteKind.enemy, on_on_overlap)
复制代码


3、玩家碰到敌人(扣血)
python
  1. def on_on_overlap2(sprite2, otherSprite2):
  2.     scene.camera_shake(4, 500)  # 屏幕震动
  3.     otherSprite2.destroy(effects.disintegrate)  # 敌人爆炸
  4.     sprite2.start_effect(effects.fire, 200)  # 玩家着火特效
  5.     info.change_life_by(-1)  # 扣除1点生命
  6. sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap2)
复制代码


5、创建玩家战舰
python
  1. ship = sprites.create(sprites.space.space_red_ship, SpriteKind.player)
  2. ship.set_stay_in_screen(True)  # 限制在屏幕内
  3. ship.bottom = 120  # 初始位置靠近底部
  4. controller.move_sprite(ship, 100, 100)  # 启用移动控制
  5. info.set_life(3)  # 设置生命值为3
复制代码


6、设置星空背景
python
  1. effects.star_field.start_screen_effect()
复制代码

添加动态星空背景,营造太空氛围。

7、每隔0.5秒生成一个敌人
python
  1. def on_update_interval():
  2.     global projectile
  3.     projectile = sprites.create_projectile_from_side(asteroids[randint(0, len(asteroids) - 1)], 0, 75)
  4.     projectile.set_kind(SpriteKind.enemy)
  5.     projectile.x = randint(10, 150)
  6. game.on_update_interval(500, on_update_interval)
复制代码

随机从小行星列表中选择一个图像。

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 天前

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

图形编程参考实验程序

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 天前

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

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

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

实验场景记录

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

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

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

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 天前

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail