20浏览
查看: 20|回复: 3

[项目] 【花雕动手做】基于Kitronik游戏机开发板之夏季的雨

[复制链接]
【花雕动手做】基于Kitronik游戏机开发板之夏季的雨图1

Kitronik ARCADE 使用 Microsoft MakeCode 平台,具有以下优势:
图形化编程界面:适合初学者,支持拖拽式编程。
即时模拟器:可以实时测试游戏效果。
硬件兼容性:可部署到 Kitronik ARCADE 设备,实现实体游戏体验。
支持 Python/JavaScript:便于进阶学习。



【花雕动手做】基于Kitronik游戏机开发板之夏季的雨图2

驴友花雕  中级技神
 楼主|

发表于 3 小时前

【花雕动手做】基于Kitronik游戏机开发板之夏季的雨

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

MicroPython实验代码

  1. @namespace
  2. class SpriteKind:
  3.     Water = SpriteKind.create()
  4. def on_sprite_kind_update_interval(sprite):
  5.     if sprite.y >= 62:
  6.         sprite.set_image(assets.image("""
  7.             Raindrop
  8.             """))
  9.         sprite.vy = 0
  10.         
  11.         def on_after():
  12.             sprites.destroy(sprite)
  13.         timer.after(100, on_after)
  14.         
  15. spriteutils.on_sprite_kind_update_interval(SpriteKind.Water, 1, on_sprite_kind_update_interval)
  16. Rain: Sprite = None
  17. scene.set_background_image(assets.image("""
  18.     Water
  19.     """))
  20. tiles.set_current_tilemap(tilemap("""
  21.     Sky
  22.     """))
  23. scroller.scroll_background_with_speed(-6, 0)
  24. def on_update_interval():
  25.     global Rain
  26.     Rain = sprites.create(img("""
  27.         8
  28.         8
  29.         """), SpriteKind.Water)
  30.     Rain.set_flag(SpriteFlag.RELATIVE_TO_CAMERA, True)
  31.     Rain.set_position(randint(0, 200), 0)
  32.     Rain.vy = 300
  33. game.on_update_interval(10, on_update_interval)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 小时前

【花雕动手做】基于Kitronik游戏机开发板之夏季的雨

这段 Arcade MakeCode 的 MicroPython 实验代码《夏季的雨》模拟了一个动态的雨滴场景,展现了雨滴从天空落下并消失的过程。玩家无需操作,程序自动生成雨滴并模拟其下落、碰撞与消失,营造出夏日雨景的视觉效果。

代码结构详解

1、精灵种类定义
python
  1. @namespace
  2. class SpriteKind:
  3.     Water = SpriteKind.create()
复制代码

创建一个新的精灵种类 Water,用于标记雨滴。

2、雨滴行为逻辑
python
  1. def on_sprite_kind_update_interval(sprite):
  2.     if sprite.y >= 62:
  3.         sprite.set_image(assets.image("Raindrop"))
  4.         sprite.vy = 0
  5.         def on_after():
  6.             sprites.destroy(sprite)
  7.         timer.after(100, on_after)
复制代码

每个雨滴精灵每 1 毫秒检查一次位置:
如果雨滴落到 y ≥ 62(接近地面):
更换图像为“Raindrop”形态。
停止垂直速度(vy = 0)。
100 毫秒后销毁该雨滴。
python
  1. spriteutils.on_sprite_kind_update_interval(SpriteKind.Water, 1, on_sprite_kind_update_interval)
复制代码

将上述逻辑绑定到所有 Water 类型精灵,每 1 毫秒执行一次。

3、场景设置
python
  1. scene.set_background_image(assets.image("Water"))
  2. tiles.set_current_tilemap(tilemap("Sky"))
  3. scroller.scroll_background_with_speed(-6, 0)
复制代码

设置背景图为“Water”,营造雨天氛围。
使用 tilemap “Sky”作为地图结构。
背景缓慢向左滚动,模拟风或移动感。

4、雨滴生成机制
python
  1. def on_update_interval():
  2.     global Rain
  3.     Rain = sprites.create(img("8\n8"), SpriteKind.Water)
  4.     Rain.set_flag(SpriteFlag.RELATIVE_TO_CAMERA, True)
  5.     Rain.set_position(randint(0, 200), 0)
  6.     Rain.vy = 300
复制代码

每 10 毫秒生成一个新的雨滴:
图像为两个像素点(简化雨滴形态)。
设置为相对于摄像机位置。
随机横坐标(0–200),纵坐标为顶部。
垂直速度为 300,快速下落。
python
  1. game.on_update_interval(10, on_update_interval)
复制代码

每 10 毫秒调用一次雨滴生成函数,形成持续降雨效果。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 3 小时前

【花雕动手做】基于Kitronik游戏机开发板之夏季的雨

图形编程参考实验程序

【花雕动手做】基于Kitronik游戏机开发板之夏季的雨图1

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

【花雕动手做】基于Kitronik游戏机开发板之夏季的雨图2

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail