Scrolling platformer

Instructions: Welcome to Toxic Zone!\n________________________\nThere are 16 levels to complete and they are all possible!\n\nInstructions:\n- Use the arrow keys or WAD to move.\n- You can do double jumps and avoid toxic liquid!\n- Aim with the mouse pointer, click to shoot and press the down arrow or E to reload.\n- Press R to restart.\n- Try to complete all levels as fast as you can!

@Stage\n\nwhen flag clicked\nforever\n    play sound [Popsicle v] until done\nend\n\n@Platform プラットフォーム\n\nwhen flag clicked\nset [level v] to [1]\nfirst [300]\nforever\n    program\nend\n\ndefine first (size)\nswitch costume to (nil v)\nset size to (size) %\nset [size v] to (size)\nset [y v] to [0]\nswitch costume to ((level) + (1))\npoint in direction (105)\ngo to x: (0) y: (-500)\n\ndefine program\nchange [y v] by (1)\nif <<<key (right arrow v) pressed?> or <<mouse down?> and <[0] < (mouse x)>>> or <key (d v) pressed?>> then\n    change [angle v] by (0.2)\nend\nif <<key (a v) pressed?> or <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < [0]>>>> then\n    change [angle v] by (-0.2)\nend\nset [angle v] to ((Angle) * (0.8))\nturn left (Angle) degrees\nrepeat (8)\n    if <touching (player プレイヤー v)?> then\n        change y by (-1)\n    end\nend\nif <touching (player プレイヤー v)?> then\n    change y by (8)\n    turn right (Angle) degrees\n    if <<<key (up arrow v) pressed?> or <<mouse down?> and <[20] < (mouse y)>>> or <key (w v) pressed?>> then\n        if <[0] < (Angle)> then\n            set [angle v] to [-1.5]\n        else\n            set [angle v] to [1.5]\n        end\n        set [y v] to [-10]\n    else\n        set [angle v] to [0]\n    end\nend\nchange y by (Y)\nif <touching (player プレイヤー v)?> then\n    change y by ((Y) * (-1))\n    set [y v] to [0]\nend\nchange y by (1)\nif <touching (player プレイヤー v)?> then\n    if <<<key (up arrow v) pressed?> or <<mouse down?> and <[20] < (mouse y)>>> or <key (w v) pressed?>> then\n        set [y v] to [-12]\n    end\nend\nchange y by (-1)\nset [angle / 角度 v] to (round (direction))\n\nwhen I receive [reset v]\nfirst [320]\n\n@player プレイヤー\n\nwhen flag clicked\nset drag mode [not draggable v]\ngo to x: (0) y: (0)\nset rotation style [left-right v]\nset [ok v] to [0]\nforever\n    if <<key (right arrow v) pressed?> or <<mouse down?> and <[0] < (mouse x)>>> then\n        point in direction (90)\n    end\n    if <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < [0]>>> then\n        point in direction (-90)\n    end\n    if <touching (enemy 敵 v)?> then\n        start sound [crashed oof v]\n        broadcast (Reset v)\n    end\n    if <touching (jumping platform　ジャンプ台 v)?> then\n        start sound [smw_spring_jump @ToadfanSchool v]\n        set [y v] to [-18]\n        wait until <not <touching (jumping platform　ジャンプ台 v)?>>\n    end\n    if <touching (goal　ゴール v)?> then\n        if <(ok) = [0]> then\n            start sound [High Whoosh v]\n            set [ok v] to [1]\n            broadcast (Reset v)\n            change [level v] by (1)\n        end\n    end\nend\n\n@Enemy 敵\n\ndefine Set hack size to (size)\nswitch costume to (nil v)\nset size to (size) %\nswitch costume to ((level) + (1))\n\nwhen flag clicked\ngo to [back v] layer\ngo [forward v] (1) layers\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nSet hack size to (size)\nforever\n    switch costume to ((level) + (1))\n    go to (platform プラットフォーム v)\n    point in direction ([direction v] of [platform プラットフォーム v])\nend\n\nwhen I receive [reset v]\nSet hack size to (size)\n\n@ \n\nwhen I receive [reset v]\ngo to [front v] layer\nshow\nset [ghost v] effect to (0)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nwhen flag clicked\nhide\n\n@jumping platform　ジャンプ台\n\nwhen flag clicked\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nSet hack size to (size)\nforever\n    go to (platform プラットフォーム v)\n    point in direction ([direction v] of [platform プラットフォーム v])\n    switch costume to ((level) + (1))\nend\n\ndefine Set hack size to (size)\nswitch costume to (nil v)\nset size to (size) %\nswitch costume to ((level) + (1))\n\nwhen I receive [reset v]\nSet hack size to (size)\n\n@Goal　ゴール\n\nwhen flag clicked\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\ngo to [back v] layer\nSet hack size to (size)\nforever\n    go to (platform プラットフォーム v)\n    point in direction ([direction v] of [platform プラットフォーム v])\n    switch costume to ((level) + (1))\nend\n\ndefine Set hack size to (size)\nswitch costume to (nil v)\nset size to (size) %\nswitch costume to ((level) + (1))\n\nwhen I receive [reset v]\nSet hack size to (size)\n\n@text　文字\n\ndefine Set hack size to (size)\nswitch costume to (nil v)\nset size to (size) %\nswitch costume to ((level) + (1))\n\nwhen flag clicked\ngo to [back v] layer\ngo [forward v] (1) layers\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nSet hack size to (size)\nforever\n    switch costume to ((level) + (1))\n    go to (platform プラットフォーム v)\n    point in direction ([direction v] of [platform プラットフォーム v])\nend\n\nwhen I receive [reset v]\nSet hack size to (size)\n\n@　　\n\nwhen flag clicked\nhide\n\n