作为学习、练习与尝试,这里创建一个草莓公主的小游戏。
打开网页版:https://arcade.makecode.com/,设置项目名称:草莓公主
MicroPython实验代码
- @namespace
- class SpriteKind:
- Taco = SpriteKind.create()
-
- def on_on_overlap(sprite, otherSprite):
- info.change_score_by(10)
- otherSprite.destroy()
- sprites.on_overlap(SpriteKind.player, SpriteKind.Taco, on_on_overlap)
-
- # Eating a strawberry or a cherry gives 1 point
- #
- # Eating taco gives 10 points
- #
- # If you try to eat the death pill you will lose a life, but gain 15 points.
- #
- # Princess, you have 60 seconds and 3 life to finish the game.
- def randomAssets():
- global strawberry, cherry, taco, deathpill
- strawberry = sprites.create(img("""
- . . . . . . . 6 . . . . . . . .
- . . . . . . 8 6 6 . . . 6 8 . .
- . . . e e e 8 8 6 6 . 6 7 8 . .
- . . e 2 2 2 2 e 8 6 6 7 6 . . .
- . e 2 2 4 4 2 7 7 7 7 7 8 6 . .
- . e 2 4 4 2 6 7 7 7 6 7 6 8 8 .
- e 2 4 5 2 2 6 7 7 6 2 7 7 6 . .
- e 2 4 4 2 2 6 7 6 2 2 6 7 7 6 .
- e 2 4 2 2 2 6 6 2 2 2 e 7 7 6 .
- e 2 4 2 2 4 2 2 2 4 2 2 e 7 6 .
- e 2 4 2 2 2 2 2 2 2 2 2 e c 6 .
- e 2 2 2 2 2 2 2 4 e 2 e e c . .
- e e 2 e 2 2 4 2 2 e e e c . . .
- e e e e 2 e 2 2 e e e c . . . .
- e e e 2 e e c e c c c . . . . .
- . c c c c c c c . . . . . . . .
- """),
- SpriteKind.food)
- strawberry.x = randint(0, scene.screen_width())
- strawberry.y = randint(0, scene.screen_height())
- cherry = sprites.create(img("""
- . . . . . . . . . . . 6 6 6 6 6
- . . . . . . . . . 6 6 7 7 7 7 8
- . . . . . . 8 8 8 7 7 8 8 6 8 8
- . . e e e e c 6 6 8 8 . 8 7 8 .
- . e 2 5 4 2 e c 8 . . . 6 7 8 .
- e 2 4 2 2 2 2 2 c . . . 6 7 8 .
- e 2 2 2 2 2 2 2 c . . . 8 6 8 .
- e 2 e e 2 2 2 2 e e e e c 6 8 .
- c 2 e e 2 2 2 2 e 2 5 4 2 c 8 .
- . c 2 e e e 2 e 2 4 2 2 2 2 c .
- . . c 2 2 2 e e 2 2 2 2 2 2 2 e
- . . . e c c e c 2 2 2 2 2 2 2 e
- . . . . . . . c 2 e e 2 2 e 2 c
- . . . . . . . c e e e e e e 2 c
- . . . . . . . . c e 2 2 2 2 c .
- . . . . . . . . . c c c c c . .
- """),
- SpriteKind.food)
- cherry.x = randint(0, scene.screen_width())
- cherry.y = randint(0, scene.screen_height())
- if Math.percent_chance(20):
- taco = sprites.create(img("""
- . . . . . . . e e e e . . . . .
- . . . . . e e 4 5 5 5 e e . . .
- . . . . e 4 5 6 2 2 7 6 6 e . .
- . . . e 5 6 6 7 2 2 6 4 4 4 e .
- . . e 5 2 2 7 6 6 4 5 5 5 5 4 .
- . e 5 6 2 2 8 8 5 5 5 5 5 4 5 4
- . e 5 6 7 7 8 5 4 5 4 5 5 5 5 4
- e 4 5 8 6 6 5 5 5 5 5 5 4 5 5 4
- e 5 c e 8 5 5 5 4 5 5 5 5 5 5 4
- e 5 c c e 5 4 5 5 5 4 5 5 5 e .
- e 5 c c 5 5 5 5 5 5 5 5 4 e . .
- e 5 e c 5 4 5 4 5 5 5 e e . . .
- e 5 e e 5 5 5 5 5 4 e . . . . .
- 4 5 4 e 5 5 5 5 e e . . . . . .
- . 4 5 4 5 5 4 e . . . . . . . .
- . . 4 4 e e e . . . . . . . . .
- """),
- SpriteKind.Taco)
- taco.x = randint(0, scene.screen_width())
- taco.y = randint(0, scene.screen_height())
- else:
- deathpill = sprites.create(img("""
- ........................
- ........................
- ........................
- ........................
- ........................
- ..........ffff..........
- ........ff1111ff........
- .......fb111111bf.......
- .......f11111111f.......
- ......fd11111111df......
- ....7.fd11111111df......
- ...7..fd11111111df......
- ...7..fd11111111df......
- ...7..fddd1111dddff.....
- ...77.fbdbfddfbdbfcf....
- ...777fcdcf11fcdcfbf....
- ....77fffbdb1bdffcf.....
- ....fcb1bcffffff........
- ....f1c1c1ffffff........
- ....fdfdfdfffff.........
- .....f.f.f..............
- ........................
- ........................
- ........................
- """),
- SpriteKind.enemy)
- deathpill.x = randint(0, scene.screen_width())
- deathpill.y = randint(0, scene.screen_height())
-
- def on_on_overlap2(sprite2, otherSprite2):
- info.change_score_by(1)
- otherSprite2.destroy()
- sprites.on_overlap(SpriteKind.player, SpriteKind.food, on_on_overlap2)
-
- def on_on_overlap3(sprite3, otherSprite3):
- info.change_life_by(-1)
- info.change_score_by(15)
- otherSprite3.destroy()
- sprites.on_overlap(SpriteKind.player, SpriteKind.enemy, on_on_overlap3)
-
- deathpill: Sprite = None
- taco: Sprite = None
- cherry: Sprite = None
- strawberry: Sprite = None
- info.set_life(3)
- info.start_countdown(60)
- princess = sprites.create(img("""
- . . . . . . 5 . 5 . . . . . . .
- . . . . . f 5 5 5 f f . . . . .
- . . . . f 1 5 2 5 1 6 f . . . .
- . . . f 1 6 6 6 6 6 1 6 f . . .
- . . . f 6 6 f f f f 6 1 f . . .
- . . . f 6 f f d d f f 6 f . . .
- . . f 6 f d f d d f d f 6 f . .
- . . f 6 f d 3 d d 3 d f 6 f . .
- . . f 6 6 f d d d d f 6 6 f . .
- . f 6 6 f 3 f f f f 3 f 6 6 f .
- . . f f d 3 5 3 3 5 3 d f f . .
- . . f d d f 3 5 5 3 f d d f . .
- . . . f f 3 3 3 3 3 3 f f . . .
- . . . f 3 3 5 3 3 5 3 3 f . . .
- . . . f f f f f f f f f f . . .
- . . . . . f f . . f f . . . . .
- """),
- SpriteKind.player)
- princess.set_stay_in_screen(True)
- controller.move_sprite(princess)
- scene.set_background_color(11)
-
- def on_update_interval():
- randomAssets()
- game.on_update_interval(2000, on_update_interval)
复制代码
|