驴友花雕 发表于 2025-8-31 17:34:38

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

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

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

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







驴友花雕 发表于 2025-8-31 17:36:19

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

主要特征:
Kitronik ARCADE 是一款功能丰富的手持游戏手柄开发板,可与 Microsoft Arcade 编辑器一起使用。
编写您自己的游戏来玩或从 MakeCode Arcade 网站免费下载游戏。
使用丰富的教育材料从头开始创建游戏,或调整现有代码并学习开源方式。
它配备了全彩液晶广视角屏幕。
它有一个用于音频反馈的压电发声器。
利用振动电机进行触觉反馈。
它还具有;6 个玩家输入按钮、一个菜单按钮、一个重置按钮和一个开/关开关。
还有一个软件音量控制、一个 USB 编程端口和 2 个扩展端口,供专家级用户使用。
ARCADE 可以由 3xAA 电池或微型 USB 连接器供电。



Kitronik ARCADE 是一款专为与 MakeCode Arcade 编辑器一起使用而设计的掌上游戏平台,既可以编写自己的游戏并在 ARCADE 上运行它们,也可以下载现有游戏并享受功能齐全的掌上游戏体验。(网页版:https://arcade.makecode.com/)

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



驴友花雕 发表于 2025-8-31 17:38:14

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

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

MicroPython实验代码

def on_controller_connected(player2):
    pizza.set_players_with(characters, 1)
mp.on_controller_event(ControllerEvent.CONNECTED, on_controller_connected)

def on_on_overlap(sprite, otherSprite):
    sprites.destroy(otherSprite, effects.disintegrate, 100)
    mp.change_player_state_by(mp.get_player_by_sprite(sprite), MultiplayerState.score, 1)
sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap)

def on_on_overlap2(sprite2, otherSprite2):
    scene.camera_shake(4, 500)
    mp.change_player_state_by(mp.get_player_by_sprite(otherSprite2),
      MultiplayerState.score,
      -1)
    sprite2.set_kind(SpriteKind.player)
sprites.on_overlap(SpriteKind.enemy, SpriteKind.player, on_on_overlap2)

def on_button_multiplayer_a_pressed(player22):
    mp.get_player_sprite(player22).x += 1.5
mp.on_button_event(mp.MultiplayerButton.A,
    ControllerButtonEvent.PRESSED,
    on_button_multiplayer_a_pressed)

def on_on_score(thisPlayer):
    game.game_over(True)
mp.on_score(20, on_on_score)

projectile: Sprite = None
characters: List = []
characters = [newpizzaassets.red,
    newpizzaassets.blue,
    newpizzaassets.orange,
    newpizzaassets.green]
scene.set_background_image(img("""
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111333311111111111111111111111111111111111111111111111111111111111111111111111111111133331111111111111111111111111111111111111111111111111111
    1111111111111111111113333331111111111111111111111111111111111111111111111111111111111111111111111111111333333111111111111111111111111111111111111111111111111111
    1111111111111111111113333331133111111111111111111111111111111111111111111111111111111111111111111111111333333113311111111111111111111111111111111111111111111111
    1111111111111111113333333331333331111111111111111111111111111111111111111111111111111111111111111111333333333133333111111111111111111111111111111111111111111111
    1111111111111111133333333333333331111111111111111111111111111111111111111111111111111111111111111113333333333333333111111111111111111111111111111111111111111111
    1111111111111111333333333333333333311111111111111111111111111111111111111111111111111111111111111133333333333333333331111111111111111111111111111111111111111111
    1111111111111111333333333333333333331111111111111111111111111111111111111111111111111111111111111133333333333333333333111111111111111111111111111111111111111111
    1111111111111111133333333333333333331113311111111111111111111111111111111111111111111111111111111113333333333333333333111331111111111111111111111111111111111111
    1111111111111333313333333333333333331133333111111111111111111111111111111111111111111111111111133331333333333333333333113333311111111111111111111111111111111111
    1111111111113333331333333333333333311133333111111111111111111111111111111111111111111111111111333333133333333333333331113333311111111111111111111111111111111111
    1111111111113333333333333333333333133333333311111111111111111111111111111111111111111111111111333333333333333333333313333333331111111111111111111111111111111111
    1111111111113333333333333333333333333333333311111111111111111111111111111111111111111111111111333333333333333333333333333333331111111111111111111111111111111111
    1111111111111333333333333333333333333333333311111111111111111111111111111111111111111111111111133333333333333333333333333333331111111111111111111111111111111111
    1133311113333133333333333333333333333333333113311111111111113333111111111111111111113331111333313333333333333333333333333333311331111111111111333311111111111111
    1333331133333333333333333333333333333333333133331111111111133333311111111111111111133333113333333333333333333333333333333333313333111111111113333331111111111111
    1333331333333333333333333333333333333333333133331111111111133333313331111111111111133333133333333333333333333333333333333333313333111111111113333331333111111111
    1133333333333333333333333333333333333333333333331111111111111333333333111111111111113333333333333333333333333333333333333333333333111111111111133333333311111111
    1333333333333333333333333333333333333333333333311111111133331333333333111111111111133333333333333333333333333333333333333333333331111111113333133333333311111111
    3333333333333333333333333333333333333333333333331111111333333333333331111111111311333333333bb3333333333333333333333333333333333333111111133333333333333111111111
    3333333333333333333333333333333333333333333333333133311333333333333333333111111bbb333333333bbb333333333333333333333333333333333333313331133333333333333333311111
    3333333333333333333333333333333333333333333333333333333333333333333333333311113bbb333333333bbb333333333333333333333333333333333333333333333333333333333333331111
    33333333333333333333333333333333333333333333333333333333333333333333333333111bbbbbbb333333bbbbb33333333333333333333333333333333333333333333333333333333333331111
    33333333333333333333333333333333333333333bbbbbbbbb333333333333333333333333333bbbbbbb333333bbbbb333333333333333333333333333333333333333333bbbbbbbbbb3333333333333
    33333333333333333333333333333333333333333bbbbbbbbb333333333333333333333333333bbbbbbb333333bbbbb333333333333333333333333333333333333333333bbbbbbbbbb3333333333333
    3333333333333333333bbb3333333333333333333b33bbbbbb333333333333333333333333333b33bbbb33333bbbbbbb33333333333333333333bb3333333333333333333bb3b3bbbbb3333333333333
    333333333333333333bbbbb333333333333333333bbbbbbb3b333333333333333333333333333bbbbbbb33333bbbbbbb3333333333333333333bbbb333333333333333333bbbbbb33bb3333333333333
    33333333333333333bbbbbb333333333333333333bbbbbbbbb3333333333b33333333bbbbb333b3bbbbb33333bbbbbbb33333333333333333bbbbbb333333333333333333bbbbbbbbbb3333333333333
    33333333333333333bbb3b333333b333333333333bbbbbbbbb333333333bb33333333bbbbb333bbbbbbb33333bbbbbbb33333333333333333bbb3b333333bb33333333333bbbb3bbbbb33333333bb333
    33333333333333333bbbbbb33333b333333333333bbbbbbb3b333333333bb33333333bbbbb333bbbbbbb33333bbbbbbb33333333333333333bbbbbb33333bb33333333333bbbbbbb3bb33333333bb333
    33333333bbb333333bb33b33333bbb33333333333bbbbbbbbb33bbbbbb3bb33333333bbbbb333bbbbbbb33333bbbbbbb333333333bb333333bbb3b33333bbb33333333333bbbbbbbbbb3bbbbbbbbb333
    b3bb3333bbbbbbbbbbb3bbb333bbbbb3333333333bbbbbbb3b33b33bbb3bb333333333bb3bb33bbbbbbb333bbbbbbbbbb3bb3333bbbbbbbbbbbbb3b3333bbbb3333333333bbbbbb33bb3b33bbbbbb333
    bbbb33333b3bb3bbbbbbbbb333bbbbb3333333333bbbbbbbbb33bbbb3b3bb33333333bbbbbb33bb3bbbb333bbbbbbbbbbbbb3333bb3bbb3bbbbbbbb3333bbbb3333333333bbbbbbbbbb3bbbb3bbbb333
    bb3b33333bbb3333bbbbbbb333bbbbb3333333333bbbbbbbbb33bbbb3bbbb33333333bbbbbb33bbbbbbb333bbbbbbbbbbb3b3333bbbb3b33bbbbbbb3333bbbb3333333333bbbbbbbbbb3bbbb3bbbb333
    bbbb3333bbbbbbbbbbbbbbbb33bbbbbb33bb3bb3bbbbbbbbbbb3b33bbbbbb33333333bbbbbb33bbbbbbb333bbbbbbbbbbbbb3333bbbbbbbbbbbbbbbb33bbbbbb333b33bbbbbbbbbbbbb3b33bbbbbb333
    bb3b3333bbbbbbbbbbbbbbbb33bbbbbb33bbbbbbbbbbbbbbbbb3bbbbbbbbb33b33b33bbbbbb33bbbbbbb333bbbbbbbbbbb3b3333bbbbbbbbbbbbbbbb33bbbbbb333bbbbbbbbbbbbbbbb3bbbbbbbbb333
    bbbbb3bb3b3bbbbbbbbbbbbb33bbbbbbb3bbbb33bbbbbbbbbbbbb33bbbbbbbbb3bbb33bb3bb33bbbbbbb333bbbbbbbbbbbbbbb3bbb3bbbbbbbbbbbbb33bbbbbbb333b33bbbbbbdbbbbbbbdddddbbb3bb
    bbbbb3bbbbbbbbbbbbbbbbbbbb3bbbbbb3bbbbbbbbbdddbbbbbbbbbdddbbbbbb3bbb3bbbbbb33bbbbbbb333bbbbbbbbbbbbbbb3bbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbbbbddbbbbbbbbbdddbbb3bb
    bbbbb3bbbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbbbdddbbbbbbbbbdddbbbbbbbbbbbbbbbbbbbbbbbbbb333bbbbbbbbbbbbbbb3bbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbbbbddbbbbbbbbbdddbbbbbb
    bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbdddddddbbbbbbdddddbbbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb3b3bbbbbbdddddddbbbbbdddddbbbbb
    bbbbbdddddddddbbbbbbbbbbbbbbbbbbb3bbbbbbbdddddddbbbbbbdddddbbbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbbbbbbbbddddddddddbbbbbbbbbbbbbbbbbb3bbbbbbbbdddddddbbbbbdddddbbbbb
    bbbbbdddddddddbbbbbbbbbbbbbbbbbbb3bbbbbbbdddddddbbbbbbdddddbbbbbbbbbbbbbbbbbbbbbbbbbbb3bbbbbbbbbbbbbbddddddddddbbbbbbbbbbbbbbbbbb3bbbbbbbbdddddddbbbbbdddddbbbbb
    bbbbbdbbddddddbbbbbbbbbbbbbbbbbbb3bbbbbbbdbbddddbbbbbdddddddbb333bbbbbbbbbbbbbbbddbbbb3bbbbbbbbbbbbbbddbdbdddddbbbbbbbbbbbbbbbbbb3bbbbbbbbdddddddbbbbddddddddddb
    bbbbbdddddddbdbbbbbbbbbbbbbbbbbbbbbbbbbbbdddddddbbbbbdddddddbbb33bbbbbbbbbbbbbbddddbbb3bbbbbbbbbbbbbbddddddbbddbbbbbbbbbbbbbbbbbb3bbbbbbbbdddddddbbbbddddddddbbb
    bbbbbdddddddddbbbbbbbbbbdbbbbbbbbdddddbbbdbdddddbbbbbdddddddbbbbbbbbbbb3bbbbbddddddbbb3bbbbbbbbbbbbbbddddddddddbbbbbbbbbbbbbbbbbbbddddbbbbdddbdddbbbbddddddddbbb
    bbbbbdddddddddbbbbbbbbbddbbbbbbbbdddddbbbdddddddbbbbbdddddddbb3bbbbbbbbbbbbbbdddbdbbbbbbddbbbbbbbbbbbddddbdddddbbbbbbbbddbbbbbbbbbddddbbbbdddbdddbbbbddddddddbdb
    bbbbbdddddddbdbbbbbbbbbddbbbbbbbbdddddbbbdddddddbbbbbdddddddbb333bbbbbbbbbbbbddddddbbbbbddbbbbbbbbbbbdddddddbddbbbbbbbbddbbbbbbbbddddddbbbdddddddbbbbddddddddddb
    bbbbbdddddddddbbddddddbddbbbbbbbbdddddbbbdddddddbbbbbdddddddbbbbbbbbbdddbbbbbdddbdbbbbbdddbbbbbbbbbbbddddddddddbdddddddddbbbbbbbbddddddbbbdddbdddbbbbddddddddbbb
    bbbbbdddddddbdbbdbbdddbddbbbbbbbbbddbddbbdddddddbbbddddddddddbddbbbbdddddddddddddbdbbbbddddbbbbbbbbbbddddddbbddbdbbddddddbbbbbbbbdddddddbbdddddddbbddddddddddddd
    bbbbbdddddddddbbddddbdbddbbbbbbbbddddddbbddbddddbbbdddddddddddddbbbbddbdddbddddddddbbbbddddbbbbbbbbbbddddddddddbddddbddddbbbbbbbbdddddddbbddddbddbbddddddddddddd
    bbbbbdddddddddbbddddbddddbbbbbbbbddddddbbdddddddbbbdddddddddddbdbbbbddddbdbbdddddddbbbbddddbbbbbbbbbbddddddddddbddddbddddbbbbbbbbdddddddbbdddddddbbddddddddddddd
    bddbdddddddddddbdbbddddddbbbbbbbbddddddbbdddddddbbbdddddddddddddbbbbddddddddddddddddbbddddddbbbdbbdddddddddddddbdbbddddddbbbbbbbbdddddddbbdddddddbbddddddddddddd
    dddddddddddddddbdddddddddbbdbbdbbddddddbbdddddddbbbdddddddddddbdbbbbddddddddddddddddbbddddddbbbddddddddddddddddbdddddddddbbbbbdbbdddddddbbdddddddbbddddddddddddd
    ddbbdddddddddddddbbbbdddddddbdddbbddbddbbdddddddbbbdddddddddddddddbdddbdddddddddddddbbdddddddbbbdbbddddddddddddddbbdbddddbddbdddbdddddddbbdddddddbbddddddddddddd
    ddddddddddddddddddddddddddddbdddbddddddbbdddddddbbbdddddddddddddddbddddddddddddddddddddddddddbdddddddddddddddddddddddddddbddbdddddddddddbbddddbddbbddddddddddddd
    ddddddddddddddddddddddddddddddddddddddddddddddddbbbdddddddddddddddbddddddddddddddddddddddddddbdddddddddddddddddddddddddddddddddddddddddddddddddddbbddddddddddddd
    ddddddddddddddddddddddddddddddddddddddddddddddddddbdddddddddddddddbddddddddddddddddddddddddddbdbddddddddddddddddddddddddddddddddddddddddddddddddddbddddddddddddd
    ddddddddddddddddddddddddddddddddddddddddddddddddddbdddddddddddddddbddddddddddddddddddddddddddbddddddddddddddddddddddddddddddddbdddddddddddddddddddbddddddddddddd
    ddddddddddddddddddddddddddddddddddddddddddddddddddbdddddddddddddddbddddddddddddddddddddddddddbddddddddddddddddddddddddddddddddddddddddddddddddddddbddddddddddddd
    ddddddddddddddddddddddddddbbbdddddddddddddddddddddbdddddddddddddddbddddddddddddddddddddddddddbdddddddddddddddddddddddddddbbdbdbddddddddddddddddddddddddddddddddd
    dddddddddddddddddddddddddddbbdddddddddddddddddddddbdddddddddddddddbddddddddddddddddddddddddddbddddddddddddddddddddddddddddddbdbddddddddddddddddddddddddddddddddd
    dddddddddddddddddddddddddddddddddddbddddddddddddddbdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbddddbdddddddddddddddddddddddddddd
    ddddddddddddddddddddddddddbdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbddddddddddddddddddddddddddddddddddddd
    ddddddddddddddddddddddddddbbbddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddbbdbddddddddddddddddddddddddddddddddddd
    dddddddddddddddddddddddddddddddddddbdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
    ddddddddddddddddd1dddddddddddddddd1dddddddddddddddddddddd1dddddddddddddddd1dddddddddddddddddddddd1dddddddddddddddd1dddddddddddddddddddddd1dddddddddddddddd1ddddd
    dddddd1ddd11ddddd11dddd1ddd1dddd1d11ddd1dddddd1ddd11ddddd11dddd1ddd1dddd1d11ddd1dddddd1ddd11ddddd11dddd1ddd1dddd1d11ddd1dddddd1ddd11ddddd11dddd1ddd1dddd1d11ddd1
    dd1ddd11d11dd1ddd11ddd11ddd11ddd1dd11d11dd1ddd11d11dd1ddd11ddd11ddd11ddd1dd11d11dd1ddd11d11dd1ddd11ddd11ddd11ddd1dd11d11dd1ddd11d11dd1ddd11ddd11ddd11ddd1dd11d11
    dd11dd11d11dd11ddd11d11dddd11d1d11d1111ddd11dd11d11dd11ddd11d11dddd11d1d11d1111ddd11dd11d11dd11ddd11d11dddd11d1d11d1111ddd11dd11d11dd11ddd11d11dddd11d1d11d11113
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
    """))
pizza.set_players_with(characters, 1)
game.splash("Press (A) when everyone is", "ready to start the game")
music.play(music.create_song(assets.song("""
      countdown
      """)),
    music.PlaybackMode.UNTIL_DONE)

def on_update_interval():
    global projectile
    projectile = sprites.create_projectile_from_side(img("""
            . . . . . . b b b b . . . . . .
            . . . . . . b 4 4 4 b . . . . .
            . . . . . . b b 4 4 4 b . . . .
            . . . . . b 4 b b b 4 4 b . . .
            . . . . b d 5 5 5 4 b 4 4 b . .
            . . . . b 3 2 3 5 5 4 e 4 4 b .
            . . . b d 2 2 2 5 7 5 4 e 4 4 e
            . . . b 5 3 2 3 5 5 5 5 e e e e
            . . b d 7 5 5 5 3 2 3 5 5 e e e
            . . b 5 5 5 5 5 2 2 2 5 5 d e e
            . b 3 2 3 5 7 5 3 2 3 5 d d e 4
            . b 2 2 2 5 5 5 5 5 5 d d e 4 .
            b d 3 2 d 5 5 5 d d d 4 4 . . .
            b 5 5 5 5 d d 4 4 4 4 . . . . .
            4 d d d 4 4 4 . . . . . . . . .
            4 4 4 4 . . . . . . . . . . . .
            """),
      randint(-100, 100),
      randint(-100, 100))
game.on_update_interval(500, on_update_interval)


驴友花雕 发表于 2025-8-31 17:44:37

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

核心代码解析

1. 控制器连接事件

def on_controller_connected(player2):

    pizza.set_players_with(characters, 1)

mp.on_controller_event(ControllerEvent.CONNECTED, on_controller_connected)
当控制器连接时,使用角色列表为玩家分配角色

pizza.set_players_with()函数配置玩家使用的角色

2. 碰撞检测系统

玩家与披萨项目的碰撞

def on_on_overlap(sprite, otherSprite):

    sprites.destroy(otherSprite, effects.disintegrate, 100)

    mp.change_player_state_by(mp.get_player_by_sprite(sprite), MultiplayerState.score, 1)
当玩家碰到披萨时,披萨会以碎裂效果消失

玩家得分增加1分

玩家与敌人的碰撞

def on_on_overlap2(sprite2, otherSprite2):

    scene.camera_shake(4, 500)# 相机震动效果

    mp.change_player_state_by(mp.get_player_by_sprite(otherSprite2), MultiplayerState.score, -1)

    sprite2.set_kind(SpriteKind.player)# 敌人变为玩家
碰撞时产生相机震动效果

玩家失去1分

敌人转变为玩家(可能是游戏机制的一部分)

3. 控制器按钮事件

def on_button_multiplayer_a_pressed(player22):

    mp.get_player_sprite(player22).x += 1.5# 向右移动角色
当按下A按钮时,玩家角色向右移动1.5个单位

4. 胜利条件

def on_on_score(thisPlayer):

    game.game_over(True)# 游戏胜利结束

mp.on_score(20, on_on_score)
当有玩家达到20分时,游戏结束并宣布胜利

5. 游戏初始化
角色设置

characters: List = []

characters = [newpizzaassets.red,

    newpizzaassets.blue,

    newpizzaassets.orange,

    newpizzaassets.green]
定义了四种不同颜色的角色图像

背景设置

scene.set_background_image(img("""..."""))
设置了详细的像素艺术背景,包含披萨相关元素

游戏启动流程

pizza.set_players_with(characters, 1)

game.splash("Press (A) when everyone is", "ready to start the game")

music.play(music.create_song(assets.song("countdown")), music.PlaybackMode.UNTIL_DONE)
设置玩家角色

显示提示信息

播放倒计时音乐

6. 游戏循环 - 披萨生成

def on_update_interval():

    global projectile

    projectile = sprites.create_projectile_from_side(img("""披萨图像"""),

      randint(-100, 100),

      randint(-100, 100))

game.on_update_interval(500, on_update_interval)
每500毫秒生成一个新的披萨项目

披萨以随机方向(-100到100)在屏幕上移动

使用ASCII艺术定义了披萨的外观

驴友花雕 发表于 2025-8-31 17:50:14

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

图形编程参考实验程序


驴友花雕 发表于 2025-8-31 17:52:33

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

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


驴友花雕 发表于 2025-8-31 18:04:59

【花雕动手做】基于 Kitronik 可编程开发板的披萨派对

本帖最后由 驴友花雕 于 2025-8-31 18:06 编辑

实验场景记录








页: [1]
查看完整版本: 【花雕动手做】基于 Kitronik 可编程开发板的披萨派对