53| 4
|
[项目] 【花雕动手做】基于 Kitronik 可编程开发板之吃水果游戏 |
Kitronik ARCADE 是一款由英国教育科技公司 Kitronik 精心打造的可编程游戏机开发板,专为编程教学与创客实践而设计。该设备原生支持微软的 MakeCode Arcade 平台,用户可通过图形化或 JavaScript 编程方式,轻松创建、下载并运行复古风格的街机游戏。 它集成了彩色 LCD 显示屏、方向控制键、功能按键、蜂鸣器和震动马达等交互组件,提供完整的游戏输入输出体验。无论是初学者进行编程启蒙,还是创客群体开发交互式作品,Kitronik ARCADE 都能作为理想的硬件载体,助力创意实现。 凭借其开源友好、易于上手、兼容性强等特点,该开发板广泛应用于中小学编程课程、创客工作坊、游戏开发教学以及个人项目原型设计,深受教育者与技术爱好者的喜爱。 ![]() ![]() ![]() |
作为学习、练习与尝试,这里创建一个吃水果的小游戏。 打开网页版:https://arcade.makecode.com/,设置项目名称:吃水果 MicroPython实验参考代码
|
这段代码是用 MakeCode Arcade 编写的一个 吃水果游戏 的核心逻辑。玩家控制一个角色在屏幕上移动,吃到水果得分,碰到障碍物则扣血。 游戏目标 玩家控制角色吃掉“水果”(SpriteKind.food)来得分。 避免碰到“障碍物”(SpriteKind.projectile),否则会扣除生命值。 游戏中不断生成三种不同的物体,其中一种是水果,其余是障碍。 代码逐段解析 (1)玩家碰到障碍物(扣血) python def on_on_overlap(sprite, otherSprite): info.change_life_by(-1) # 扣除1点生命 scene.camera_shake(4, 500) # 屏幕震动效果 otherSprite.destroy(effects.bubbles) # 销毁障碍物并显示泡泡效果 sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap) (2) 玩家吃到水果(加分) python def on_on_overlap2(sprite2, otherSprite2): info.change_score_by(1) # 得分+1 otherSprite2.destroy() # 销毁水果 sprite2.start_effect(effects.hearts, 100) # 玩家显示心形特效 music.ba_ding.play() # 播放提示音效 sprites.on_overlap(SpriteKind.player, SpriteKind.food, on_on_overlap2) (3)创建玩家角色 python mySprite = sprites.create(img("""..."""), SpriteKind.player) controller.move_sprite(mySprite, 100, 100) # 启用控制器移动 mySprite.set_stay_in_screen(True) # 限制角色在屏幕内 info.set_life(5) # 设置初始生命值为5 (4)设置背景颜色 python scene.set_background_color(13) # 设置背景颜色(13是紫色) (5)每隔0.5秒生成一个物体 python def on_update_interval(): global choice, projectile choice = randint(1, 3) # 随机选择1~3 (6)生成障碍物(从左边飞来) python if choice == 1: projectile = sprites.create_projectile_from_side(img("""..."""), -60, 0) (7)生成障碍物(从右边飞来) python elif choice == 2: projectile = sprites.create_projectile_from_side(img("""..."""), 60, 0) (8)生成水果(从右边飞来) python else: projectile = sprites.create_projectile_from_side(img("""..."""), 55, 0) projectile.set_kind(SpriteKind.food) # 设置为食物类型 (9)设置物体的垂直位置 python projectile.y = randint(10, 110) # 随机Y轴位置 (10)定时器触发 python game.on_update_interval(500, on_update_interval) # 每500毫秒触发一次生成 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed