作为学习、练习与尝试,这里创建一个平台跳跃的小游戏。 
打开网页版:https://arcade.makecode.com/,设置项目名称:平台跳跃 
 
MicroPython实验代码 
 
			
			
			- class ActionKind(Enum):
 -     RunningLeft = 0
 -     RunningRight = 1
 -     Idle = 2
 -     IdleLeft = 3
 -     IdleRight = 4
 -     JumpingLeft = 5
 -     JumpingRight = 6
 -     CrouchLeft = 7
 -     CrouchRight = 8
 -     Flying = 9
 -     Walking = 10
 -     Jumping = 11
 - @namespace
 - class SpriteKind:
 -     Bumper = SpriteKind.create()
 -     Goal = SpriteKind.create()
 -     Coin = SpriteKind.create()
 -     Flier = SpriteKind.create()
 - 
 - def on_on_overlap(sprite, otherSprite):
 -     if sprite.vy > 0 and not (sprite.is_hitting_tile(CollisionDirection.BOTTOM)) or sprite.y < otherSprite.top:
 -         otherSprite.destroy(effects.ashes, 250)
 -         otherSprite.vy = -50
 -         sprite.vy = -2 * pixelsToMeters
 -         info.change_score_by(1)
 -         music.power_up.play()
 -     else:
 -         info.change_life_by(-1)
 -         sprite.say("Ow!", invincibilityPeriod)
 -         music.power_down.play()
 -     pause(invincibilityPeriod)
 - sprites.on_overlap(SpriteKind.player, SpriteKind.Bumper, on_on_overlap)
 - 
 - def initializeAnimations():
 -     initializeHeroAnimations()
 -     initializeCoinAnimation()
 -     initializeFlierAnimations()
 - def giveIntroduction():
 -     game.set_dialog_frame(img("""
 -         . 2 2 2 2 2 2 2 2 2 2 2 2 2 . .
 -         2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 .
 -         2 1 1 2 2 2 2 2 2 2 2 2 1 1 2 .
 -         2 1 2 2 1 1 1 1 1 1 1 2 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 1 1 1 1 1 1 1 1 1 2 1 2 .
 -         2 1 2 2 1 1 1 1 1 1 1 2 2 1 2 .
 -         2 1 1 2 2 2 2 2 2 2 2 2 1 1 2 .
 -         2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 .
 -         . 2 2 2 2 2 2 2 2 2 2 2 2 2 . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     game.set_dialog_cursor(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . f f 5 5 5 5 f f . . . .
 -         . . . . f 5 5 5 5 5 5 f . . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . . f 5 5 5 5 5 5 f . . . .
 -         . . . . f f 5 5 5 5 f f . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     showInstruction("Move with the left and right buttons.")
 -     showInstruction("Jump with the up or A button.")
 -     showInstruction("Double jump by pressing jump again.")
 - def initializeCoinAnimation():
 -     global coinAnimation
 -     coinAnimation = animation.create_animation(ActionKind.Walking, 200)
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . f f 5 5 5 5 f f . . . .
 -         . . . . f 5 5 5 5 5 5 f . . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . f 5 5 5 4 4 5 5 5 f . . .
 -         . . . . f 5 5 5 5 5 5 f . . . .
 -         . . . . f f 5 5 5 5 f f . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . f f f f f f . . . . . .
 -         . . . f f 5 f 5 5 5 f . . . . .
 -         . . . f 5 f 5 5 5 5 5 f . . . .
 -         . . f 5 f 5 5 5 4 5 5 f . . . .
 -         . . f 5 f 5 5 5 4 4 5 5 f . . .
 -         . . f 5 f 5 5 5 4 4 5 5 f . . .
 -         . . f 5 f 5 5 5 4 5 5 f . . . .
 -         . . . f 5 f 5 5 5 5 5 f . . . .
 -         . . . . f 5 f 5 5 5 f . . . . .
 -         . . . . f f f f f f . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . f f f f f . . . . . .
 -         . . . . f f 5 f 5 f f . . . . .
 -         . . . f f 5 f 5 5 5 f . . . . .
 -         . . . f 5 f 5 5 5 5 f f . . . .
 -         . . . f 5 f 5 5 4 5 5 f . . . .
 -         . . . f 5 f 5 5 4 5 5 f . . . .
 -         . . . f 5 f 5 5 5 5 f f . . . .
 -         . . . f f 5 f 5 5 5 f . . . . .
 -         . . . . f f 5 f 5 f f . . . . .
 -         . . . . . f f f f f . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . . f f f f f . . . . . .
 -         . . . . . f 5 f 5 f f . . . . .
 -         . . . . . f 5 f 5 5 f . . . . .
 -         . . . . . f 5 f 5 5 f . . . . .
 -         . . . . . f 5 f 5 5 f . . . . .
 -         . . . . . f 5 f 5 5 f . . . . .
 -         . . . . . f 5 f 5 f f . . . . .
 -         . . . . . f f f f f . . . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . . . f f f f f . . . . .
 -         . . . . . f f 5 f 5 f . . . . .
 -         . . . . . f 5 5 f 5 f . . . . .
 -         . . . . . f 5 5 f 5 f . . . . .
 -         . . . . . f 5 5 f 5 f . . . . .
 -         . . . . . f 5 5 f 5 f . . . . .
 -         . . . . . f f 5 f 5 f . . . . .
 -         . . . . . . f f f f f . . . . .
 -         . . . . . . f f f f . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f f . . . . .
 -         . . . . . f f 5 f 5 f f . . . .
 -         . . . . . f 5 5 5 f 5 f f . . .
 -         . . . . f f 5 5 5 5 f 5 f . . .
 -         . . . . f 5 5 4 5 5 f 5 f . . .
 -         . . . . f 5 5 4 5 5 f 5 f . . .
 -         . . . . f f 5 5 5 5 f 5 f . . .
 -         . . . . . f 5 5 5 f 5 f f . . .
 -         . . . . . f f 5 f 5 f f . . . .
 -         . . . . . . f f f f f . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     coinAnimation.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f f f . . . .
 -         . . . . . f 5 5 5 f 5 f f . . .
 -         . . . . f 5 5 5 5 5 f 5 f . . .
 -         . . . . f 5 5 4 5 5 5 f 5 f . .
 -         . . . f 5 5 4 4 5 5 5 f 5 f . .
 -         . . . f 5 5 4 4 5 5 5 f 5 f . .
 -         . . . . f 5 5 4 5 5 5 f 5 f . .
 -         . . . . f 5 5 5 5 5 f 5 f . . .
 -         . . . . . f 5 5 5 f 5 f . . . .
 -         . . . . . . f f f f f f . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 - 
 - def on_on_overlap2(sprite2, otherSprite2):
 -     otherSprite2.destroy(effects.trail, 250)
 -     otherSprite2.y += -3
 -     info.change_score_by(3)
 -     music.ba_ding.play()
 - sprites.on_overlap(SpriteKind.player, SpriteKind.Coin, on_on_overlap2)
 - 
 - def attemptJump():
 -     global doubleJumpSpeed, canDoubleJump
 -     # else if: either fell off a ledge, or double jumping
 -     if hero.is_hitting_tile(CollisionDirection.BOTTOM):
 -         hero.vy = -4 * pixelsToMeters
 -     elif canDoubleJump:
 -         doubleJumpSpeed = -3 * pixelsToMeters
 -         # Good double jump
 -         if hero.vy >= -40:
 -             doubleJumpSpeed = -4.5 * pixelsToMeters
 -             hero.start_effect(effects.trail, 500)
 -             scene.camera_shake(2, 250)
 -         hero.vy = doubleJumpSpeed
 -         canDoubleJump = False
 - 
 - def on_up_pressed():
 -     attemptJump()
 - controller.up.on_event(ControllerButtonEvent.PRESSED, on_up_pressed)
 - 
 - def animateIdle():
 -     global mainIdleLeft, mainIdleRight
 -     mainIdleLeft = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainIdleLeft)
 -     mainIdleLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d d d d d d d d d e e d f .
 -         . f d d f d d d d f d d e d f .
 -         . f d d f d d d d f d d d e f .
 -         . f d d f d d d d f d d d f . .
 -         . f d d d d d d d d d d d f . .
 -         . f a c c c c c c c c a b f . .
 -         . f d d c c c c c c d d d f . .
 -         . f d f f f b b f f f d d f . .
 -         . . f a a a a a a a a a b f . .
 -         . . . f a a b f f a a b f . . .
 -         . . . f a a b f f a a b f . . .
 -         . . . . f f f . . f f f . . . .
 -         """))
 -     mainIdleRight = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainIdleRight)
 -     mainIdleRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d e e d d d d d d d d d f .
 -         . f d e d d f d d d d f d d f .
 -         . f e d d d f d d d d f d d f .
 -         . . f d d d f d d d d f d d f .
 -         . . f d d d d d d d d d d d f .
 -         . . f b a c c c c c c c c a f .
 -         . . f d d d c c c c c c d d f .
 -         . . f d d f f f b b f f f d f .
 -         . . f b a a a a a a a a a f . .
 -         . . . f b a a f f b a a f . . .
 -         . . . f b a a f f b a a f . . .
 -         . . . . f f f . . f f f . . . .
 -         """))
 - 
 - def on_down_pressed():
 -     if not (hero.is_hitting_tile(CollisionDirection.BOTTOM)):
 -         hero.vy += 80
 - controller.down.on_event(ControllerButtonEvent.PRESSED, on_down_pressed)
 - 
 - def setLevelTileMap(level: number):
 -     clearGame()
 -     if level == 0:
 -         tiles.set_tilemap(tilemap("""
 -             level
 -             """))
 -     elif level == 1:
 -         tiles.set_tilemap(tilemap("""
 -             level_0
 -             """))
 -     elif level == 2:
 -         tiles.set_tilemap(tilemap("""
 -             level_1
 -             """))
 -     elif level == 3:
 -         tiles.set_tilemap(tilemap("""
 -             level_2
 -             """))
 -     elif level == 4:
 -         tiles.set_tilemap(tilemap("""
 -             level_3
 -             """))
 -     elif level == 5:
 -         tiles.set_tilemap(tilemap("""
 -             level_4
 -             """))
 -     elif level == 6:
 -         tiles.set_tilemap(tilemap("""
 -             level_5
 -             """))
 -     elif level == 7:
 -         tiles.set_tilemap(tilemap("""
 -             level_6
 -             """))
 -     initializeLevel(level)
 - def initializeFlierAnimations():
 -     global flierFlying, flierIdle
 -     flierFlying = animation.create_animation(ActionKind.Walking, 100)
 -     flierFlying.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . f 4 4 4 4 4 4 4 f . . .
 -         . . . f 4 5 5 4 4 4 5 5 4 f . .
 -         . f . f 4 4 4 5 4 5 4 4 4 f . f
 -         . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -         . . . f 4 4 5 5 5 5 5 4 4 f . .
 -         . . . . f 4 5 4 4 4 5 4 f . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     flierFlying.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . f 4 4 4 4 4 4 4 f . . .
 -         . . . f 4 5 5 4 4 4 5 5 4 f . .
 -         . . . f 4 4 4 5 4 5 4 4 4 f . .
 -         . . f 4 4 4 4 4 4 4 4 4 4 4 f .
 -         . . f 4 4 4 4 5 4 5 4 4 4 4 f .
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f 4 4 4 4 4 4 4 4 4 4 4 4 4 f
 -         . f 4 f 4 4 5 5 5 5 5 4 4 f 4 f
 -         . f f . f 4 5 4 4 4 5 4 f . f f
 -         . f . . . f f f f f f f . . . f
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     flierFlying.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . f 4 4 4 4 4 4 4 f . . .
 -         . . . f 4 5 5 4 4 4 5 5 4 f . .
 -         . f . f 4 4 4 5 4 5 4 4 4 f . f
 -         . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -         . . . f 4 4 5 5 5 5 5 4 4 f . .
 -         . . . . f 4 5 4 4 4 5 4 f . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     flierIdle = animation.create_animation(ActionKind.Walking, 100)
 -     flierIdle.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . f 4 4 4 4 4 4 4 f . . .
 -         . . . f 4 5 5 4 4 4 5 5 4 f . .
 -         . f . f 4 4 4 5 4 5 4 4 4 f . f
 -         . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -         . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -         . . . f 4 4 5 5 5 5 5 4 4 f . .
 -         . . . . f 4 5 4 4 4 5 4 f . . .
 -         . . . . . f f f f f f f . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 - def animateRun():
 -     global mainRunLeft, mainRunRight
 -     mainRunLeft = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainRunLeft)
 -     mainRunLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f . . . . . .
 -         . . f e e e e e e e f . . . . .
 -         . f e e e e e e e e e f . . . .
 -         . f d d d d e d d e e f . . . .
 -         . f d d f d d e d e e f . . . .
 -         . f d d f d d d e e e f . . . .
 -         . f d d f d d d d d d f . . . .
 -         . f d d d d d d d d d f . . . .
 -         . . f c c c a a c c b f . . . .
 -         . . f c c d d d c c b f . . . .
 -         . . f b f f d d f f f f . . . .
 -         . . f a a a a a a a b f . . . .
 -         . . . f a a a a b f f . . . . .
 -         . . . f a a a a b f . . . . . .
 -         . . . . f f f f f . . . . . . .
 -         """))
 -     mainRunLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f . . . . . .
 -         . . f e e e e e e e f . . . . .
 -         . f e e e e e e e e e f . . . .
 -         . f d d d d e d d e e f . . . .
 -         . f d d f d d e d e e f . . . .
 -         . f d d f d d d e e e f . . . .
 -         . f d d f d d d d d d f . . . .
 -         . f d d d d d d d d d f . . . .
 -         . . f c c c c a a c b f . . . .
 -         . . f c c c c d d c b f . . . .
 -         . . f b f f d d d f f f f . . .
 -         . . f a a a a a a a a b f f . .
 -         . . . f a a b f f a a a f f . .
 -         . . . . f f f . f f f f f . . .
 -         """))
 -     mainRunLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f . . . . . .
 -         . . f e e e e e e e f . . . . .
 -         . f e e e e e e e e e f . . . .
 -         . f d d d d e d d e e f . . . .
 -         . f d d f d d e d e e f . . . .
 -         . f d d f d d d e e e f . . . .
 -         . f d d f d d d d d d f . . . .
 -         . f d d d d d d d d d f . . . .
 -         . . f c c c a a c c b f . . . .
 -         . . f c c d d d c c b f . . . .
 -         . . f b f f d d f f f f . . . .
 -         . . f a a a a a a a b f . . . .
 -         . . . f a a a a b f f . . . . .
 -         . . . f a a a a b f . . . . . .
 -         . . . . f f f f f . . . . . . .
 -         """))
 -     mainRunLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f . . . . . .
 -         . . f e e e e e e e f . . . . .
 -         . f e e e e e e e e e f . . . .
 -         . f d d d d e d d e e f . . . .
 -         . f d d f d d e d e e f . . . .
 -         . f d d f d d d e e e f . . . .
 -         . f d d f d d d d d d f . . . .
 -         . f d d d d d d d d d f . . . .
 -         . . f c a a c c c c b f . . . .
 -         . f d d d b c c c c b f . . . .
 -         f f f d d f f f f f f f . . . .
 -         f f f a a a a a a a b f . . . .
 -         . f a a b f a a b f f . . . . .
 -         . f f f f . f f f . . . . . . .
 -         """))
 -     mainRunRight = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainRunRight)
 -     mainRunRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f f f f . . .
 -         . . . . . f e e e e e e e f . .
 -         . . . . f e e e e e e e e e f .
 -         . . . . f e e d d e d d d d f .
 -         . . . . f e e d e d d f d d f .
 -         . . . . f e e e d d d f d d f .
 -         . . . . f d d d d d d f d d f .
 -         . . . . f d d d d d d d d d f .
 -         . . . . f b c c a a c c c f . .
 -         . . . . f b c c d d d c c f . .
 -         . . . . f f f f d d f f b f . .
 -         . . . . f b a a a a a a a f . .
 -         . . . . . f f b a a a a f . . .
 -         . . . . . . f b a a a a f . . .
 -         . . . . . . . f f f f f . . . .
 -         """))
 -     mainRunRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f f f f . . .
 -         . . . . . f e e e e e e e f . .
 -         . . . . f e e e e e e e e e f .
 -         . . . . f e e d d e d d d d f .
 -         . . . . f e e d e d d f d d f .
 -         . . . . f e e e d d d f d d f .
 -         . . . . f d d d d d d f d d f .
 -         . . . . f d d d d d d d d d f .
 -         . . . . f b c a a c c c c f . .
 -         . . . . f b c d d c c c c f . .
 -         . . . f f f f d d d f f b f . .
 -         . . f f b a a a a a a a a f . .
 -         . . f f a a a f f b a a f . . .
 -         . . . f f f f . . f f f . . . .
 -         """))
 -     mainRunRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f f f f . . .
 -         . . . . . f e e e e e e e f . .
 -         . . . . f e e e e e e e e e f .
 -         . . . . f e e d d e d d d d f .
 -         . . . . f e e d e d d f d d f .
 -         . . . . f e e e d d d f d d f .
 -         . . . . f d d d d d d f d d f .
 -         . . . . f d d d d d d d d d f .
 -         . . . . f b c c a a c c c f . .
 -         . . . . f b c c d d d c c f . .
 -         . . . . f f f f d d f f b f . .
 -         . . . . f b a a a a a a a f . .
 -         . . . . . f f b a a a a f . . .
 -         . . . . . . f b a a a a f . . .
 -         . . . . . . . f f f f f . . . .
 -         """))
 -     mainRunRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . f f f f f f f . . .
 -         . . . . . f e e e e e e e f . .
 -         . . . . f e e e e e e e e e f .
 -         . . . . f e e d d e d d d d f .
 -         . . . . f e e d e d d f d d f .
 -         . . . . f e e e d d d f d d f .
 -         . . . . f d d d d d d f d d f .
 -         . . . . f d d d d d d d d d f .
 -         . . . . f b c c c c a a c f . .
 -         . . . . f b c c c c b d d d f .
 -         . . . . f f f f f f f d d f f f
 -         . . . . f b a a a a a a a f f f
 -         . . . . . f f b a a f b a a f .
 -         . . . . . . . f f f . f f f . .
 -         """))
 - 
 - def on_a_pressed():
 -     attemptJump()
 - controller.A.on_event(ControllerButtonEvent.PRESSED, on_a_pressed)
 - 
 - def animateJumps():
 -     global mainJumpLeft, mainJumpRight
 -     # Because there isn't currently an easy way to say "play this animation a single time
 -     # and stop at the end", this just adds a bunch of the same frame at the end to accomplish
 -     # the same behavior
 -     mainJumpLeft = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainJumpLeft)
 -     mainJumpLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d d d d d d d d d e e d f .
 -         . f d d f d d d d f d d e d f .
 -         . f d d f d d d d f d d d e f .
 -         . f d d f d d d d f d d d f . .
 -         . f d d d d d d d d d d d f . .
 -         . f a c c c c c c c c a b f . .
 -         . f d d c c c c c c d d d f . .
 -         . f d f f f b b f f f d d f . .
 -         . . f a a a a a a a a a b f . .
 -         . . . f a a b f f a a b f . . .
 -         . . . f a a b f f a a b f . . .
 -         . . . . f f f . . f f f . . . .
 -         """))
 -     mainJumpLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d d d d d d d d d e e d f .
 -         . f d d f d d d d f d d e d f .
 -         . f d d f d d d d f d d d e f .
 -         . f d d f d d d d f d d d f . .
 -         . f d d d d d d d d d d d f . .
 -         . f a c c c c c c c c a b f . .
 -         . f d d c c c c c c d d d f . .
 -         . f d f f f b b f f f d d f . .
 -         . . f a a a a a a a a a b f . .
 -         . . . f a a b f f a a b f . . .
 -         . . . . f f f . . f f f . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     for index in range(30):
 -         mainJumpLeft.add_animation_frame(img("""
 -             . . . . . . . . . . . . . . . .
 -             . . . f f f f f f f f f f . . .
 -             . . f e e e e e e e e e e f . .
 -             . f e e e e e e e e e e e e f .
 -             . f d d d d d d d d d e e d f .
 -             . f d d f d d d d f d d e d f .
 -             . f d d f d d d d f d d d e f .
 -             . f d d f d d d d f d d d f . .
 -             . f d d d d d d d d d d d f f .
 -             . d a b c c c c c c c c b a d .
 -             . d a c c c c c c c c c c a d .
 -             . f f f f f b b f f f f f f f .
 -             . . f a a a a a a a a a b f . .
 -             . . . f a a b f f a a b f . . .
 -             . . . . f f f . . f f f . . . .
 -             . . . . . . . . . . . . . . . .
 -             """))
 -     mainJumpRight = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainJumpRight)
 -     mainJumpRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d e e d d d d d d d d d f .
 -         . f d e d d f d d d d f d d f .
 -         . f e d d d f d d d d f d d f .
 -         . . f d d d f d d d d f d d f .
 -         . . f d d d d d d d d d d d f .
 -         . . f b a c c c c c c c c a f .
 -         . . f d d d c c c c c c d d f .
 -         . . f d d f f f b b f f f d f .
 -         . . f b a a a a a a a a a f . .
 -         . . . f b a a f f b a a f . . .
 -         . . . f b a a f f b a a f . . .
 -         . . . . f f f . . f f f . . . .
 -         """))
 -     mainJumpRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d e e d d d d d d d d d f .
 -         . f d e d d f d d d d f d d f .
 -         . f e d d d f d d d d f d d f .
 -         . . f d d d f d d d d f d d f .
 -         . . f d d d d d d d d d d d f .
 -         . . f b a c c c c c c c c a f .
 -         . . f d d d c c c c c c d d f .
 -         . . f d d f f f b b f f f d f .
 -         . . f b a a a a a a a a a f . .
 -         . . . f b a a f f b a a f . . .
 -         . . . . f f f . . f f f . . . .
 -         . . . . . . . . . . . . . . . .
 -         """))
 -     for index2 in range(30):
 -         mainJumpRight.add_animation_frame(img("""
 -             . . . . . . . . . . . . . . . .
 -             . . . f f f f f f f f f f . . .
 -             . . f e e e e e e e e e e f . .
 -             . f e e e e e e e e e e e e f .
 -             . f d e e d d d d d d d d d f .
 -             . f d e d d f d d d d f d d f .
 -             . f e d d d f d d d d f d d f .
 -             . . f d d d f d d d d f d d f .
 -             . f f d d d d d d d d d d d f .
 -             . d a b c c c c c c c c b a d .
 -             . d a c c c c c c c c c c a d .
 -             . f f f f f f f b b f f f f f .
 -             . . f b a a a a a a a a a f . .
 -             . . . f b a a f f b a a f . . .
 -             . . . . f f f . . f f f . . . .
 -             . . . . . . . . . . . . . . . .
 -             """))
 - def animateCrouch():
 -     global mainCrouchLeft, mainCrouchRight
 -     mainCrouchLeft = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainCrouchLeft)
 -     mainCrouchLeft.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d d d d d d d d d e e d f .
 -         . f d d f d d d d f d d e d f .
 -         . f d d f d d d d f d d d e f .
 -         . f d d f d d d d f d d d f . .
 -         . f d d d d d d d d d d d f . .
 -         . f a c c c c c c c c a b f . .
 -         . f d c c c c c c c c c d d f .
 -         f d d f f f b b f f f f d d f .
 -         . f f a a a a a a a a a b f . .
 -         . . . f f f f . f f f f f . . .
 -         """))
 -     mainCrouchRight = animation.create_animation(ActionKind.Walking, 100)
 -     animation.attach_animation(hero, mainCrouchRight)
 -     mainCrouchRight.add_animation_frame(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d e e d d d d d d d d d f .
 -         . f d e d d f d d d d f d d f .
 -         . f e d d d f d d d d f d d f .
 -         . . f d d d f d d d d f d d f .
 -         . . f d d d d d d d d d d d f .
 -         . . f b a c c c c c c c c a f .
 -         . f d d c c c c c c c c c d f .
 -         . f d d f f f f b b f f f d d f
 -         . . f b a a a a a a a a a f f .
 -         . . . f f f f f . f f f f . . .
 -         """))
 - def clearGame():
 -     for value in sprites.all_of_kind(SpriteKind.Bumper):
 -         value.destroy()
 -     for value2 in sprites.all_of_kind(SpriteKind.Coin):
 -         value2.destroy()
 -     for value3 in sprites.all_of_kind(SpriteKind.Goal):
 -         value3.destroy()
 -     for value4 in sprites.all_of_kind(SpriteKind.Flier):
 -         value4.destroy()
 - 
 - def on_overlap_tile(sprite3, location):
 -     global currentLevel
 -     info.change_life_by(1)
 -     currentLevel += 1
 -     if hasNextLevel():
 -         game.splash("Next level unlocked!")
 -         setLevelTileMap(currentLevel)
 -     else:
 -         game.over(True, effects.confetti)
 - scene.on_overlap_tile(SpriteKind.player,
 -     assets.tile("""
 -         tile1
 -         """),
 -     on_overlap_tile)
 - 
 - def on_on_overlap3(sprite4, otherSprite3):
 -     info.change_life_by(-1)
 -     sprite4.say("Ow!", invincibilityPeriod * 1.5)
 -     music.power_down.play()
 -     pause(invincibilityPeriod * 1.5)
 - sprites.on_overlap(SpriteKind.player, SpriteKind.Flier, on_on_overlap3)
 - 
 - def createEnemies():
 -     global bumper, flier
 -     # enemy that moves back and forth
 -     for value5 in tiles.get_tiles_by_type(assets.tile("""
 -         tile4
 -         """)):
 -         bumper = sprites.create(img("""
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . f f f f f f . . . . . .
 -                 . . . f 7 2 7 7 7 2 f . . . . .
 -                 . . f 7 7 7 2 7 2 7 7 f . . . .
 -                 . . f 7 7 7 7 7 7 7 7 7 f . . .
 -                 . f 7 7 7 2 7 7 7 2 7 7 f . . .
 -                 . f 7 7 7 2 7 7 7 2 7 7 7 f . .
 -                 . f 7 7 7 7 7 7 7 7 7 7 7 7 f .
 -                 . f 7 7 7 7 2 2 2 7 7 7 7 7 f .
 -                 . . f 7 7 2 2 7 2 2 7 7 7 7 f .
 -                 . . f 7 7 2 7 7 7 2 2 7 7 7 f .
 -                 . . . f 7 7 7 7 7 7 7 7 7 7 f .
 -                 . . . . f f 7 7 7 7 7 7 7 f . .
 -                 . . . . . . f f f f f f f . . .
 -                 . . . . . . . . . . . . . . . .
 -                 """),
 -             SpriteKind.Bumper)
 -         tiles.place_on_tile(bumper, value5)
 -         tiles.set_tile_at(value5, assets.tile("""
 -             tile0
 -             """))
 -         bumper.ay = gravity
 -         if Math.percent_chance(50):
 -             bumper.vx = Math.random_range(30, 60)
 -         else:
 -             bumper.vx = Math.random_range(-60, -30)
 -     # enemy that flies at player
 -     for value6 in tiles.get_tiles_by_type(assets.tile("""
 -         tile7
 -         """)):
 -         flier = sprites.create(img("""
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . f f f f f f f . . . .
 -                 . . . . f 4 4 4 4 4 4 4 f . . .
 -                 . . . f 4 5 5 4 4 4 5 5 4 f . .
 -                 . f . f 4 4 4 5 4 5 4 4 4 f . f
 -                 . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -                 . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -                 . f 4 4 4 4 4 5 4 5 4 4 4 4 4 f
 -                 . f f 4 4 4 4 4 4 4 4 4 4 4 f f
 -                 . . . f 4 4 5 5 5 5 5 4 4 f . .
 -                 . . . . f 4 5 4 4 4 5 4 f . . .
 -                 . . . . . f f f f f f f . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 """),
 -             SpriteKind.Flier)
 -         tiles.place_on_tile(flier, value6)
 -         tiles.set_tile_at(value6, assets.tile("""
 -             tile0
 -             """))
 -         animation.attach_animation(flier, flierFlying)
 -         animation.attach_animation(flier, flierIdle)
 - def showInstruction(text: str):
 -     game.show_long_text(text, DialogLayout.BOTTOM)
 -     music.ba_ding.play()
 -     info.change_score_by(1)
 - def initializeHeroAnimations():
 -     animateRun()
 -     animateIdle()
 -     animateCrouch()
 -     animateJumps()
 - def createPlayer(player2: Sprite):
 -     player2.ay = gravity
 -     scene.camera_follow_sprite(player2)
 -     controller.move_sprite(player2, 100, 0)
 -     player2.z = 5
 -     info.set_life(3)
 -     info.set_score(0)
 - def initializeLevel(level2: number):
 -     global playerStartLocation
 -     effects.clouds.start_screen_effect()
 -     playerStartLocation = tiles.get_tiles_by_type(assets.tile("""
 -         tile6
 -         """))[0]
 -     tiles.place_on_tile(hero, playerStartLocation)
 -     tiles.set_tile_at(playerStartLocation, assets.tile("""
 -         tile0
 -         """))
 -     createEnemies()
 -     spawnGoals()
 - def hasNextLevel():
 -     return currentLevel != levelCount
 - def spawnGoals():
 -     global coin
 -     for value7 in tiles.get_tiles_by_type(assets.tile("""
 -         tile5
 -         """)):
 -         coin = sprites.create(img("""
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . f f f f . . . . . .
 -                 . . . . f f 5 5 5 5 f f . . . .
 -                 . . . . f 5 5 5 5 5 5 f . . . .
 -                 . . . f 5 5 5 4 4 5 5 5 f . . .
 -                 . . . f 5 5 5 4 4 5 5 5 f . . .
 -                 . . . f 5 5 5 4 4 5 5 5 f . . .
 -                 . . . f 5 5 5 4 4 5 5 5 f . . .
 -                 . . . . f 5 5 5 5 5 5 f . . . .
 -                 . . . . f f 5 5 5 5 f f . . . .
 -                 . . . . . . f f f f . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 . . . . . . . . . . . . . . . .
 -                 """),
 -             SpriteKind.Coin)
 -         tiles.place_on_tile(coin, value7)
 -         animation.attach_animation(coin, coinAnimation)
 -         animation.set_action(coin, ActionKind.Walking)
 -         tiles.set_tile_at(value7, assets.tile("""
 -             tile0
 -             """))
 - heroFacingLeft = False
 - coin: Sprite = None
 - playerStartLocation: tiles.Location = None
 - flier: Sprite = None
 - bumper: Sprite = None
 - mainCrouchRight: animation.Animation = None
 - mainCrouchLeft: animation.Animation = None
 - mainJumpRight: animation.Animation = None
 - mainJumpLeft: animation.Animation = None
 - mainRunRight: animation.Animation = None
 - mainRunLeft: animation.Animation = None
 - flierIdle: animation.Animation = None
 - flierFlying: animation.Animation = None
 - mainIdleRight: animation.Animation = None
 - mainIdleLeft: animation.Animation = None
 - doubleJumpSpeed = 0
 - canDoubleJump = False
 - coinAnimation: animation.Animation = None
 - currentLevel = 0
 - levelCount = 0
 - gravity = 0
 - pixelsToMeters = 0
 - invincibilityPeriod = 0
 - hero: Sprite = None
 - hero = sprites.create(img("""
 -         . . . . . . . . . . . . . . . .
 -         . . . f f f f f f f f f f . . .
 -         . . f e e e e e e e e e e f . .
 -         . f e e e e e e e e e e e e f .
 -         . f d e e d d d d d d d d d f .
 -         . f d e d d f d d d d f d d f .
 -         . f e d d d f d d d d f d d f .
 -         . . f d d d f d d d d f d d f .
 -         . . f d d d d d d d d d d d f .
 -         . . f b a c c c c c c c c a f .
 -         . . f d d d c c c c c c d d f .
 -         . . f d d f f f b b f f f d f .
 -         . . f b a a a a a a a a a f . .
 -         . . . f b a a f f b a a f . . .
 -         . . . f b a a f f b a a f . . .
 -         . . . . f f f . . f f f . . . .
 -         """),
 -     SpriteKind.player)
 - # how long to pause between each contact with a
 - # single enemy
 - invincibilityPeriod = 600
 - pixelsToMeters = 30
 - gravity = 9.81 * pixelsToMeters
 - 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
 -     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
 -     8999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989998999899989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989998999899989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998999899989998999899989998999899989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     9989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989898999898989998989899989998999899989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999989999999899999998999999999999999999999999999999
 -     8989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989
 -     9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
 -     """))
 - initializeAnimations()
 - createPlayer(hero)
 - levelCount = 8
 - currentLevel = 0
 - setLevelTileMap(currentLevel)
 - giveIntroduction()
 - # set up hero animations
 - 
 - def on_on_update():
 -     global heroFacingLeft
 -     if hero.vx < 0:
 -         heroFacingLeft = True
 -     elif hero.vx > 0:
 -         heroFacingLeft = False
 -     if hero.is_hitting_tile(CollisionDirection.TOP):
 -         hero.vy = 0
 -     if controller.down.is_pressed():
 -         if heroFacingLeft:
 -             animation.set_action(hero, ActionKind.Walking)
 -         else:
 -             animation.set_action(hero, ActionKind.Walking)
 -     elif hero.vy < 20 and not (hero.is_hitting_tile(CollisionDirection.BOTTOM)):
 -         if heroFacingLeft:
 -             animation.set_action(hero, ActionKind.Walking)
 -         else:
 -             animation.set_action(hero, ActionKind.Walking)
 -     elif hero.vx < 0:
 -         animation.set_action(hero, ActionKind.Walking)
 -     elif hero.vx > 0:
 -         animation.set_action(hero, ActionKind.Walking)
 -     else:
 -         if heroFacingLeft:
 -             animation.set_action(hero, ActionKind.Walking)
 -         else:
 -             animation.set_action(hero, ActionKind.Walking)
 - game.on_update(on_on_update)
 - 
 - # Flier movement
 - 
 - def on_on_update2():
 -     for value8 in sprites.all_of_kind(SpriteKind.Flier):
 -         if abs(value8.x - hero.x) < 60:
 -             if value8.x - hero.x < -5:
 -                 value8.vx = 25
 -             elif value8.x - hero.x > 5:
 -                 value8.vx = -25
 -             if value8.y - hero.y < -5:
 -                 value8.vy = 25
 -             elif value8.y - hero.y > 5:
 -                 value8.vy = -25
 -             animation.set_action(value8, ActionKind.Walking)
 -         else:
 -             value8.vy = -20
 -             value8.vx = 0
 -             animation.set_action(value8, ActionKind.Walking)
 - game.on_update(on_on_update2)
 - 
 - # Reset double jump when standing on wall
 - 
 - def on_on_update3():
 -     global canDoubleJump
 -     if hero.is_hitting_tile(CollisionDirection.BOTTOM):
 -         canDoubleJump = True
 - game.on_update(on_on_update3)
 - 
 - # bumper movement
 - 
 - def on_on_update4():
 -     for value9 in sprites.all_of_kind(SpriteKind.Bumper):
 -         if value9.is_hitting_tile(CollisionDirection.LEFT):
 -             value9.vx = Math.random_range(30, 60)
 -         elif value9.is_hitting_tile(CollisionDirection.RIGHT):
 -             value9.vx = Math.random_range(-60, -30)
 - game.on_update(on_on_update4)
 
  复制代码
  
 
 |