【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏
Kitronik ARCADE 使用 Microsoft MakeCode 平台,具有以下优势:
图形化编程界面:适合初学者,支持拖拽式编程。
即时模拟器:可以实时测试游戏效果。
硬件兼容性:可部署到 Kitronik ARCADE 设备,实现实体游戏体验。
支持 Python/JavaScript:便于进阶学习。
【花雕动手做】基于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)
【花雕动手做】基于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速度)
【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏
图形编程参考实验程序通过模拟器,调试与模拟运行
实验场景记录
【花雕动手做】基于Kitronik游戏机开发板之克里斯玛游戏
页:
[1]