13浏览
查看: 13|回复: 4

[项目] 【花雕动手做】基于Kitronik可编程开发板之生日派对射击

[复制链接]
【花雕动手做】基于Kitronik可编程开发板之生日派对射击图1

【花雕动手做】基于Kitronik可编程开发板之生日派对射击图2

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于Kitronik可编程开发板生日派对射击

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

1、MicroPython实验参考代码

  1. def on_on_overlap(sprite, otherSprite):
  2.     otherSprite.destroy(effects.confetti, 200)
  3.     mp.change_player_state_by(mp.get_player_by_sprite(sprite), MultiplayerState.score, 1)
  4.     sprites.launch_bow()
  5. sprites.on_overlap(SpriteKind.player, SpriteKind.bow, on_on_overlap)
  6. scene.set_background_image(assets.image("""
  7.     bday_bg
  8.     """))
  9. def on_wrap1():
  10.     mp.set_player_sprite(mp.player_selector(mp.PlayerNumber.ONE),
  11.         sprites.create(assets.image("""
  12.             p1
  13.             """), SpriteKind.player))
  14.     mp.move_with_buttons(mp.player_selector(mp.PlayerNumber.ONE), 0, 150)
  15.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.ONE)).set_stay_in_screen(True)
  16.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.ONE)).left = 15
  17. bundles.wrap1(on_wrap1)
  18. def on_wrap2():
  19.     mp.set_player_sprite(mp.player_selector(mp.PlayerNumber.TWO),
  20.         sprites.create(assets.image("""
  21.             p2
  22.             """), SpriteKind.player))
  23.     mp.move_with_buttons(mp.player_selector(mp.PlayerNumber.TWO), 0, 150)
  24.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.TWO)).set_stay_in_screen(True)
  25.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.TWO)).right = 145
  26. bundles.wrap2(on_wrap2)
  27. sprites.launch_bow()
  28. carnival.start_countdown_game(60, carnival.WinTypes.MULTI)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于Kitronik可编程开发板生日派对射击

代码解读

这段代码是一个使用 MakeCode Arcade 编写的多人小游戏,主题是“生日派对射击”,玩家通过接住或碰撞“弓箭”来得分。下面是逐行解读,带你快速掌握它的逻辑和玩法:

1、游戏机制概览
两位玩家在屏幕左右两侧控制角色。

游戏中不断发射“弓箭”。

玩家碰到弓箭时触发彩色**效果、得分,并再次发射弓箭。

游戏限时 60 秒,支持多人得分统计。

2、碰撞事件处理
python
  1. def on_on_overlap(sprite, otherSprite):
  2.     otherSprite.destroy(effects.confetti, 200)
  3.     mp.change_player_state_by(mp.get_player_by_sprite(sprite), MultiplayerState.score, 1)
  4.     sprites.launch_bow()
  5. sprites.on_overlap(SpriteKind.player, SpriteKind.bow, on_on_overlap)
复制代码

当玩家角色与“弓箭”碰撞时:

弓箭销毁,并播放彩色纸屑**效果,持续 200 毫秒。

玩家得分 +1。

立即发射新的弓箭,保持游戏节奏。

3、场景设置
python
  1. scene.set_background_image(assets.image("""bday_bg"""))
复制代码

设置背景为生日派对主题图像,营造欢乐氛围。

4、玩家一初始化
python
  1. def on_wrap1():
  2.     mp.set_player_sprite(mp.player_selector(mp.PlayerNumber.ONE),
  3.         sprites.create(assets.image("""p1"""), SpriteKind.player))
  4.     mp.move_with_buttons(mp.player_selector(mp.PlayerNumber.ONE), 0, 150)
  5.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.ONE)).set_stay_in_screen(True)
  6.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.ONE)).left = 15
  7. bundles.wrap1(on_wrap1)
复制代码

玩家一使用角色图像 p1。

只能上下移动(X 速度为 0,Y 速度为 150)。

保持在屏幕内,初始位置靠左边(x = 15)。

5、玩家二初始化
python
  1. def on_wrap2():
  2.     mp.set_player_sprite(mp.player_selector(mp.PlayerNumber.TWO),
  3.         sprites.create(assets.image("""p2"""), SpriteKind.player))
  4.     mp.move_with_buttons(mp.player_selector(mp.PlayerNumber.TWO), 0, 150)
  5.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.TWO)).set_stay_in_screen(True)
  6.     mp.get_player_sprite(mp.player_selector(mp.PlayerNumber.TWO)).right = 145
  7. bundles.wrap2(on_wrap2)
复制代码

玩家二使用角色图像 p2。

同样只能上下移动,初始位置靠右边(x = 145)。

6、发射弓箭 + 启动游戏
python
  1. sprites.launch_bow()
  2. carnival.start_countdown_game(60, carnival.WinTypes.MULTI)
复制代码

游戏开始时发射一支弓箭。

启动 60 秒倒计时,游戏结束后根据得分判断胜负(多人模式)。

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于Kitronik可编程开发板生日派对射击

图形编程参考实验程序

【花雕动手做】基于Kitronik可编程开发板之生日派对射击图2

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

【花雕动手做】基于Kitronik可编程开发板之生日派对射击图1



实验场景记录

【花雕动手做】基于Kitronik可编程开发板之生日派对射击图3

【花雕动手做】基于Kitronik可编程开发板之生日派对射击图4

【花雕动手做】基于Kitronik可编程开发板之生日派对射击图5
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2 小时前

【花雕动手做】基于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