驴友花雕 发表于 2025-9-26 18:10:19

【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏



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



驴友花雕 发表于 2025-9-26 18:11:47

【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏

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

MicroPython实验代码

@namespace
class SpriteKind:
    New = SpriteKind.create()
    star = SpriteKind.create()

def on_on_overlap(sprite, otherSprite):
    mySprite.set_image(img("""
      ...............cc...............
      ............ccc65c66............
      ............c6c55c76............
      ...........6cc7557c66...........
      ..........cc77777577c6..........
      .........666c677776cc66.........
      ........c7776c7c67657576........
      ........ccc666c666655666........
      ......c66cc7666667777c6766......
      .....c777c77667667767767776.....
      .....cc66cccc77c677cc666666.....
      ....c6766666c7c6767677777766....
      ...cc777666666677767777667c66...
      .666cc6677666667777777776677666.
      .67776677c676677777776677677776.
      cc6666ccc67767776777776cc7767666
      c666777667766776c776777c67776c66
      .c6777666ccc667c676cc666667776c.
      .cc6666766666cc66666666776cc666.
      ...66776c666666666677667766cccc.
      ...cc76c66766666667677667776c...
      ...6cccc677666666776777c77666...
      ......6ccc7c67767776c776cc......
      ........ccc6777c67776cc6........
      ...........cc77c67766...........
      .............6c6666.............
      ............ffeeeef.............
      ..........ffeeeeeeeef...........
      .............feeeffe............
      ..............fef...............
      ..............fef...............
      ...............f................
      """))
    info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.New, on_on_overlap)

def on_on_overlap2(sprite2, otherSprite2):
    mySprite.set_image(img("""
      ...............cc...............
      ............ccc65c66............
      ............c6c55c76............
      ...........6cc7557c66...........
      ..........cc77777577c6..........
      .........666c677776cc66.........
      ........c7776c7c67657576........
      ........ccc666c666655666........
      ......c66cc7666667777c6766......
      .....c777c77667667767767776.....
      .....cc66cccc77c677cc666666.....
      ....c6766666c7c6767677777766....
      ...cc777666666677767777667c66...
      .666cc6677666667777777776677666.
      .67776677c676677777776677677776.
      cc6666ccc67767776777776cc7767666
      c666777667766776c776777c67776c66
      .c6777666ccc667c676cc666667776c.
      .cc6666766666cc66666666776cc666.
      ...66776c666666666677667766cccc.
      ...cc76c66766666667677667776c...
      ...6cccc677666666776777c77666...
      ......6ccc7c67767776c776cc......
      ........ccc6777c67776cc6........
      ...........cc77c67766...........
      .............6c6666.............
      ............ffeeeef.............
      ..........ffeeeeeeeef...........
      .............feeeffe............
      ..............fef...............
      ..............fef...............
      ...............f................
      """))
    info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.projectile, on_on_overlap2)

def on_on_overlap3(sprite3, otherSprite3):
    mySprite.set_image(img("""
      ...............cc...............
      ............ccc65c66............
      ............c6c55c76............
      ...........6cc7557c66...........
      ..........cc77777577c6..........
      .........666c677776cc66.........
      ........c7776c7c67657576........
      ........ccc666c666655666........
      ......c66cc7666667777c6766......
      .....c777c77667667767767776.....
      .....cc66cccc77c677cc666666.....
      ....c6766666c7c6767677777766....
      ...cc777666666677767777667c66...
      .666cc6677666667777777776677666.
      .67776677c676677777776677677776.
      cc6666ccc67767776777776cc7767666
      c666777667766776c776777c67776c66
      .c6777666ccc667c676cc666667776c.
      .cc6666766666cc66666666776cc666.
      ...66776c666666666677667766cccc.
      ...cc76c66766666667677667776c...
      ...6cccc677666666776777c77666...
      ......6ccc7c67767776c776cc......
      ........ccc6777c67776cc6........
      ...........cc77c67766...........
      .............6c6666.............
      ............ffeeeef.............
      ..........ffeeeeeeeef...........
      .............feeeffe............
      ..............fef...............
      ..............fef...............
      ...............f................
      """))
    game.game_over(True)
sprites.on_overlap(SpriteKind.player, SpriteKind.star, on_on_overlap3)

def on_on_overlap4(sprite4, otherSprite4):
    mySprite.set_image(img("""
      ...............cc...............
      ............ccc65c66............
      ............c6c55c76............
      ...........6cc7557c66...........
      ..........cc77777577c6..........
      .........666c677776cc66.........
      ........c7776c7c67657576........
      ........ccc666c666655666........
      ......c66cc7666667777c6766......
      .....c777c77667667767767776.....
      .....cc66cccc77c677cc666666.....
      ....c6766666c7c6767677777766....
      ...cc777666666677767777667c66...
      .666cc6677666667777777776677666.
      .67776677c676677777776677677776.
      cc6666ccc67767776777776cc7767666
      c666777667766776c776777c67776c66
      .c6777666ccc667c676cc666667776c.
      .cc6666766666cc66666666776cc666.
      ...66776c666666666677667766cccc.
      ...cc76c66766666667677667776c...
      ...6cccc677666666776777c77666...
      ......6ccc7c67767776c776cc......
      ........ccc6777c67776cc6........
      ...........cc77c67766...........
      .............6c6666.............
      ............ffeeeef.............
      ..........ffeeeeeeeef...........
      .............feeeffe............
      ..............fef...............
      ..............fef...............
      ...............f................
      """))
    info.change_score_by(1)
sprites.on_overlap(SpriteKind.player, SpriteKind.food, on_on_overlap4)

projectile: Sprite = None
mySprite: Sprite = None
mySprite = sprites.create(img("""
      ...............cc...............
      ............ccc65c66............
      ............c6c55c76............
      ...........6cc7557c66...........
      ..........cc77777577c6..........
      .........666c677776cc66.........
      ........c7776c7c67657576........
      ........ccc666c666655666........
      ......c66cc7666667777c6766......
      .....c777c77667667767767776.....
      .....cc66cccc77c677cc666666.....
      ....c6766666c7c6767677777766....
      ...cc777666666677767777667c66...
      .666cc6677666667777777776677666.
      .67776677c676677777776677677776.
      cc6666ccc67767776777776cc7767666
      c666777667766776c776777c67776c66
      .c6777666ccc667c676cc666667776c.
      .cc6666766666cc66666666776cc666.
      ...66776c666666666677667766cccc.
      ...cc76c66766666667677667776c...
      ...6cccc677666666776777c77666...
      ......6ccc7c67767776c776cc......
      ........ccc6777c67776cc6........
      ...........cc77c67766...........
      .............6c6666.............
      ............ffeeeef.............
      ..........ffeeeeeeeef...........
      .............feeeffe............
      ..............fef...............
      ..............fef...............
      ...............f................
      """),
    SpriteKind.player)
controller.move_sprite(mySprite, 110, 0)
mySprite.set_position(82, 101)
scene.set_background_image(img("""
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999fffff9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999999ffffffff999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999999fffffffffff999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999ffffffffffff999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999ffffffffffffff999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999ffffbbfffffffff999999999999999999999999999999899989999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999ffffbbbffffffff999999999999999999999999999999899989999999999999999999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999999999ffffbbbfffffff999999999999999999999999999999899989999999999999999999999999999999999999999999999999999999999999999999999999999999
    999999999999999999999999999999999ffffbbfffffff999999999999999999999999999999899989999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999fffcbfffffff299999999999999999999999999999899989999986999999999999999999999989999969999999999999999999999999999999999999999999
    9999999999999999999999999999999999bffffffffff22ff999999999999999999999999999899989999898699988889999988889999989999989999999999999999999999999999999999999999999
    999999999999999999999999999999999992effffff222ffff99999999999999999999999999888889999999899988988999988988999988999889999999999999999999999999999999999999999999
    9999999999999999999999999999999999ff22222222ffffff99999999999999999999999999888889999999899989998899989998899998898899999999999999999999999999999999999999999999
    99999999999999999999999999999999cffffffffffffffff999999999999999999999999999899989999999899989998899989996899999888999999999999999999999999999999999999999999999
    99999999999999999999999999999999fbbfffffffffffff9999999999999999999999999999899989998888899989968999989998999999989999999999999999999999999999999999999999999999
    99999999999999999999999999999999fbbfffffffffff111999999999999999999999999999899989998999899989889999989889999999989999999999999999999999999999999999999999999999
    999999999999999999999999999999999fffff11111111111999999999999999999999999999899989998888899988899999988899999999989999999999999999999999999999999999999999999999
    9999999999999999999999999999999999911111111111111199999999999999999999999999999999999999999989999999989999999999989999999999999999999999999999999999999999999999
    999999999999999999999999999999999991111ff111ff111199999999999999999999999999999999999999999989999999989999999999989999999999999999999999999999999999999999999999
    99999999999999999999ee99999999999991111ff111cf111199999999999999999999999999999999999999999989999999989999999999989999999999999999999999999999999999999999999999
    999999999999999999999e999999999999911114444111111199999999999999999999999999999999999999999989999999989999999999989999999999999999999999999999999999999999999999
    9999999999999999eb999ee99999999999914444444111111199999999999999999eb9999999999999999999999989999999989999999999989999999999999999999999999999999999999999999999
    99999999999999999eeeb9e999999999999111111111111119999999999999999ee999999999999999999999999989999999989999999999889999999999999999999999999999999999999999999999
    999999999999999999beeeee99999999999111f1111111f11229999999999999ee9999999999999999999999999989999999989999999988899999999999999999999999999999999999999999999999
    999999999999999999999eee99999999999b2111f1f1f111122299999999999ee99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999ee99999999922221111111111222299999999999eeeee99998999899999999999899999999998999999999999999999999999999999999999999999999999999999999999
    999999999999999999999999e99999999e2222b11111111222229999999999eee99999998999899999999999899999999998999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999ee999999e22222be222e222222e9999999eeec9999999998999899999999999899989999998999999999999999999999999999999999999999999999999999999999999
    99999999999999999999999999eee9999ee22222e222ee22222199999eeee999999999998999899999999999899989999998999999999999999999999999999999999999999999999999999999999999
    999999999999999999999999999eeeb991e2222222222e2222e1199eeee99999999999998999899999889999899999999998999988999699999899999999999999999999999999999999999999999999
    9999999999999999999999999999eeee111e222e22222e222e1119eee99999999999999989998999988889998999999999989998988998999988998888999977cc999999999999999999999999999999
    999999999999999999999999999999eee111e22e22222e22ed1eeeee99999999999999998888899988999899899989998888999999899689998998889889c777cc9bcc99999999999999999999999999
    9999999999999999999999999999999eee111e22e2222e2eee1bee9999999999999999998888899988999899899989988988999999899988988998999999777cccccccc9999999999999999999999999
    99999999999999999999999999999991ee11e222ee22ee222e11e11999999999999999998999899989999899899989889998999999899998889998888889c76cccccccc9999999999999999999999999
    99999999999999999999999999999991e111e222221e22222e11111999999999999999998999899989998899899989889998998888899999899999999986e2eccccccccb999999999999999999999999
    999999999999999999999999999999911111e222221ee2222e1111199999999999999999899989998898899989998998898899899989999989999999998cd322cccccccc999999999999999999999999
    99999999999999999999999999999991111e22222e11e2222e111119999999999999999989998999988889998999899988899988888999998999988988823422cccccccc999999999999999999999999
    9999999999999999999999999999999111ee22222e1fe2222e1111999999999999999999999999999999999999999999999999999999999989999b22289e222eccccccccc99999999999999999999999
    9999999999999999999999999999999113e222222e1fe2222e111199999999999999999999999999999999999999999999999999999999998997c2d42ecce22ccccccccccc9999999999999999999999
    999999999999999999999999999999991e222222ee11e2222e11119999999999999999999999999999999999999999999999999999999999877772d222ce22c6ceeeeceeec9999999999999999999999
    999999999999999999999999999999991e222222e1112e222ee1199999999999999999999999999999999999999999999999999999999999877cce222223222cceeeeeeeb99999999999999999999999
    99999999999999999999999999999999e2222222e111de2222e11bb9999999999999999999999999999999999999999999999999999999998ccccc22ecdd222eec999cc9999999999999999999999999
    999999999999999999999999999999911e222212e11f1e22222e1bb99999999999999999999999999999999999999999999999999999999899cccccccc22222eeb999999999999999999999999999999
    9999999999999999999999999999911bbeb21212e11c1e22222ebd1199999999999999999999999999999999999999999999999999999988cccccccccee222cccee99999999999999999999999999999
    99999999999999999999999999991111bebbbbb1e1111e12222e11111999999999999999999999999999999999999999999999999999999ccccccccccee7cccccee99999999999999999999999999999
    99999999999999999999999999991111111bbbb111111e12222e11111199999999999999999999999999999999999999999999999999999cccccccceeb77cccccee99999999999999999999999999999
    99999999999999999999999999911111111111bbbbbbb2b2eb2e111111999999999999999999999999999999999999999999999999999999cccccceee977cccccce69999999999999999999999999999
    999999999999999999999999999111111111111111bbb2b2112111111119999999999999999999999999999999999999999999999999999977cccce9999cccccccce9999999999999999999999999999
    9999999999999999999999999991111111111111111111121111111111199999999999999999999999999999999999999999999999999999cccccc9999ccccccccee9999999999999999999999999999
    9999999999999999999999999991111111111111111111111111111111199999999999999999999999999999999999999999999999999999ceeb6c9999ccccccccee9999999999999999999999999999
    9999999999999999999999999911111111111111111111111111111111199999999999999999999999999999999999999999999999999999eee999999999ccccccee9999999999999999999999999999
    9999999999999999999999999911111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999ccccccee9999999999999999999999999999
    9999999999999999999999999911111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999bcccc9999999999999999999999999999
    9999999999999999999999999911111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999999cc9999999999999999999999999999
    9999999999999999999999999911111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999991111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999991111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999111111111111111111111111111111199999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999911111111111111111111111111111999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999911111111111111111111111111111999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999991111111111111111111111111118888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999111111111111111111111111188888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999111111111111111111111111888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999911111111111111111111188888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999991111111111111111111888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999911111111111111168888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999998888868888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999998888888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999888888888888888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999988888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
    """))

def on_update_interval():
    global projectile
    projectile = sprites.create_projectile_from_side(img("""
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . f f . . . . . . .
            . . . . . . . f f . . . . . . .
            . . . . . 8 8 8 8 8 8 . . . . .
            . . . . 8 9 9 9 9 9 9 8 . . . .
            . . . 8 9 9 9 9 9 9 9 9 8 . . .
            . . . 8 9 9 9 1 1 9 9 9 8 . . .
            . . . 8 9 9 9 1 1 9 9 9 8 . . .
            . . . 8 9 9 9 9 9 9 9 9 8 . . .
            . . . 8 9 9 9 9 9 9 9 9 8 . . .
            . . . . 8 9 9 9 9 9 9 8 . . . .
            . . . . . 8 8 8 8 8 8 . . . . .
            . . . . . . . . . . . . . . . .
            """),
      0,
      50)
    projectile.set_kind(SpriteKind.food)
    projectile.x = randint(0, scene.screen_width())
game.on_update_interval(2000, on_update_interval)

def on_update_interval2():
    global projectile
    projectile = sprites.create_projectile_from_side(img("""
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . f f . . . . . . .
            . . . . . . . f f . . . . . . .
            . . . . . 2 2 2 2 2 2 . . . . .
            . . . . 2 4 4 4 4 4 4 2 . . . .
            . . . 2 4 4 4 4 4 4 4 4 2 . . .
            . . 2 5 5 5 5 5 5 5 5 5 5 2 . .
            . . 2 4 4 4 4 4 4 4 4 4 4 2 . .
            . . 2 5 5 5 5 5 5 5 5 5 5 2 . .
            . . 2 4 4 4 4 4 4 4 4 4 4 2 . .
            . . 2 4 5 5 5 5 5 5 5 5 5 2 . .
            . . . 2 4 4 4 4 4 4 4 4 2 . . .
            . . . . 2 4 4 4 4 4 4 2 . . . .
            . . . . . 2 2 2 2 2 2 2 . . . .
            """),
      0,
      50)
    projectile.set_kind(SpriteKind.New)
    projectile.x = randint(0, scene.screen_width())
game.on_update_interval(1000, on_update_interval2)

def on_update_interval3():
    global projectile
    projectile = sprites.create_projectile_from_side(img("""
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . . . . . . . . . .
            . . . . . . . f f . . . . . . .
            . . . . . . . f f . . . . . . .
            . . . . . 2 2 2 2 2 2 . . . . .
            . . . . 2 4 4 4 4 4 4 2 . . . .
            . . . 2 4 4 4 4 4 4 4 4 2 . . .
            . . 2 5 5 5 5 5 5 5 5 5 5 2 . .
            . . 2 4 4 4 4 4 4 4 4 4 4 2 . .
            . . 2 5 5 5 5 5 5 5 5 5 5 2 . .
            . . 2 4 4 4 4 4 4 4 4 4 4 2 . .
            . . 2 4 5 5 5 5 5 5 5 5 5 2 . .
            . . . 2 4 4 4 4 4 4 4 4 2 . . .
            . . . . 2 4 4 4 4 4 4 2 . . . .
            . . . . . 2 2 2 2 2 2 2 . . . .
            """),
      0,
      50)
    projectile.set_kind(SpriteKind.projectile)
    projectile.x = randint(0, scene.screen_width())
game.on_update_interval(1000, on_update_interval3)

def on_update_interval4():
    global projectile
    projectile = sprites.create_projectile_from_side(img("""
            . . . . . . . b b . . . . . . .
            . . . . . . b d d b . . . . . .
            . . . . . b d 5 5 d b . . . . .
            . . . . b b 5 5 5 5 b b . . . .
            . . . . b 5 5 5 5 5 5 b . . . .
            b b b b b 5 5 5 5 1 1 d b b b b
            b 5 5 5 5 5 5 5 5 1 1 1 5 5 5 b
            b d d 5 5 5 5 5 5 1 1 1 5 d d b
            . b d d 5 5 5 5 5 5 5 5 d d b .
            . . b b 5 5 5 5 5 5 5 5 b b . .
            . . c b 5 5 5 5 5 5 5 5 b c . .
            . . c 5 5 5 5 d d 5 5 5 5 c . .
            . . c 5 5 d b b b b d 5 5 c . .
            . . c 5 d b c c c c b d 5 c . .
            . . c c c c . . . . c c c c . .
            . . . . . . . . . . . . . . . .
            """),
      0,
      50)
    projectile.set_kind(SpriteKind.star)
    projectile.x = randint(0, scene.screen_width())
game.on_update_interval(30000, on_update_interval4)

驴友花雕 发表于 2025-9-26 18:16:31

【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏

这是一个基于 MakeCode Arcade 的 MicroPython 游戏《克里斯玛游戏》代码。一个垂直射击躲避游戏,玩家控制一个角色在屏幕底部移动,躲避或收集从上方落下的各种物体。

代码结构分析

1. 自定义精灵类型
python
class SpriteKind:

    New = SpriteKind.create()

    star = SpriteKind.create()
创建了两种新的精灵类型,用于区分不同的游戏物体。

2. 碰撞检测系统
游戏中有4种不同的碰撞处理函数:

碰撞类型1(New类型)
python
def on_on_overlap(sprite, otherSprite):

    mySprite.set_image(角色图像)# 改变角色外观

    info.change_score_by(1)      # 得分+1
碰撞类型2(projectile类型)
python
def on_on_overlap2(sprite2, otherSprite2):

    mySprite.set_image(角色图像)# 改变角色外观

    info.change_score_by(1)      # 得分+1
碰撞类型3(star类型)- 游戏结束
python
def on_on_overlap3(sprite3, otherSprite3):

    mySprite.set_image(角色图像)# 改变角色外观

    game.game_over(True)         # 游戏胜利结束
碰撞类型4(food类型)
python
def on_on_overlap4(sprite4, otherSprite4):

    mySprite.set_image(角色图像)# 改变角色外观

    info.change_score_by(1)      # 得分+1

3. 游戏初始化设置
主角创建
python
mySprite = sprites.create(角色图像, SpriteKind.player)

controller.move_sprite(mySprite, 110, 0)# 水平移动速度110,垂直不动

mySprite.set_position(82, 101)         # 初始位置
背景设置
使用纯色背景(999999代表灰色)。

4. 物体生成系统
游戏有4种定时生成的物体:
类型1:食物(绿色硬币)
生成间隔: 2000ms (2秒)
图像: 绿色圆形硬币
效果: 得分+1
类型2:New物体(蓝色星星)
生成间隔: 1000ms (1秒)
图像: 蓝色星星
效果: 得分+1
类型3:Projectile物体(蓝色星星)
生成间隔: 1000ms (1秒)
图像: 蓝色星星(与New类型相同)
效果: 得分+1
类型4:Star物体(骷髅头)- 特殊物体
生成间隔: 30000ms (30秒)
图像: 骷髅头
效果: 游戏胜利结束

游戏机制分析
核心玩法
水平移动: 玩家只能左右移动角色
物体躲避: 需要躲避或收集落下的物体
得分系统: 收集特定物体获得分数
胜利条件: 碰到骷髅头物体即获胜

技术特点
物体生成逻辑
python
projectile = sprites.create_projectile_from_side(图像, 0, 50)

projectile.x = randint(0, scene.screen_width())
从屏幕顶部生成(y=0)

垂直下落速度50
随机水平位置
角色控制
python
controller.move_sprite(mySprite, 110, 0)
只允许水平移动(110速度)
垂直移动被禁用(0速度)

驴友花雕 发表于 2025-9-26 18:22:03

【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏

图形编程参考实验程序



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



实验场景记录







驴友花雕 发表于 2025-9-27 05:21:20

【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏


页: [1]
查看完整版本: 【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏