"1ステージ"だけど難しいHard platformer

Instructions: English is below\n- 日本語 -\n⚑矢印キーやタップで操作しよう！\n⚑鍵をGETして扉を開こう！\n⚑世界記録を目指して頑張ろう！\n⚑拡散もしよう((((\n⚑あとフォローもしよう(((\n- - - - - - - -\n- English -\n⚑Let's operate with arrow keys or tap!\n⚑ Try to clear by avoiding many obstacles!\n⚑ Let's do our best to aim for the world record!\n\n- credit -\nBGM / YouTube\nclouds / @RRR-scratch\nMobile Mark / @takogori\nbackground / @Flash-warrior\nTurbo mode judgment / @Pikurin

@Stage\n\nwhen flag clicked\nforever\n    play sound [Dream Ami _ トライ・エヴリシング \(Dream Ami version\) - from YouTube v] until done\n    play sound [ChouCho - 優しさの理由《Yasashisano Riyuu》\[Official Video\] - from YouTube v] until done\nend\n\n@ｼﾞﾒﾝ\n\nwhen I receive [ステージ次だよーん v]\nnext costume\n\nwhen flag clicked\nshow\nswitch costume to (コスチューム2 v)\nforever\n    go to x: (0) y: (0)\nend\n\nwhen flag clicked\nset [タイム/time v] to [0]\nforever\n    set ["" v] to (costume [number v])\nend\n\nwhen I receive [タイトル表示 v]\nhide\n\n@👤\n\nwhen flag clicked\nshow\nset rotation style [left-right v]\nset size to (20) %\nset [ghost v] effect to (0)\ngo to x: (-200) y: (-50)\ngo [backward v] (1) layers\nforever\n    switch costume to (コスチューム1 v)\n    動作\nend\n\ndefine 動作\nif <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < [0]>>> then\n    change [x v] by (-1)\n    point in direction (-90)\nend\nif <<key (right arrow v) pressed?> or <<(x position) < (mouse x)> and <mouse down?>>> then\n    change [x v] by (1.1)\n    point in direction (90)\nend\nset [x v] to ((x) * (0.9))\nchange x by (x)\nif <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n    change y by (1)\n    if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n        change y by (1)\n        if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n            change y by (1)\n            if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n                change y by (1)\n                if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n                    change y by (1)\n                    if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n                        change y by (1)\n                        if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n                            change y by (1)\n                            if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n                                change y by (1)\n                                if <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n                                    change x by ((x) * (-1))\n                                    change y by (-8)\n                                    if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > [0]>>> then\n                                        if <(x) > [0]> then\n                                            set [x v] to [-7]\n                                        else\n                                            set [x v] to [7]\n                                        end\n                                        set [y v] to [14]\n                                    else\n                                        set [x v] to [0]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (-1)\nif <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n    if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > [0]>>> then\n        set [y v] to [14]\n    end\nend\nchange y by (1)\nchange [y v] by (-1)\nchange y by (y)\nif <<touching (ｼﾞﾒﾝ v)?> or <touching (ｼﾞﾒﾝ2 v)?>> then\n    change y by ((y) * (-1))\n    set [y v] to [0]\nend\nif <touching (スプライト7 v)?> then\n    set [鍵ゲット v] to [1]\nend\nif <<touching (スプライト6 v)?> and <(鍵ゲット) = [1]>> then\n    はーい、死んだー\n    broadcast (ステージ次だよーん v)\n    go to x: (-200) y: (-50)\n    hide\nend\nif <<touching (邪魔者2 v)?> or <<touching (邪魔者 v)?> or <[-173] > (y position)>>> then\n    はーい、死んだー\nend\n\ndefine はーい、死んだー\nset [鍵ゲット v] to [0]\ngo to [front v] layer\nswitch costume to (コスチューム1 v)\nset [変数 v] to [0]\nset [x v] to [0]\nset [y v] to [0]\ngo to x: (-200) y: (-50)\npoint in direction (90)\nset [変数 v] to [9999]\nshow\n\nwhen I receive [ステージ次だよーん v]\nshow\nset [鍵ゲット v] to [0]\n\nwhen I receive [タイトル表示 v]\nhide\n\n@スプライト6\n\nwhen flag clicked\nshow\ngo to [back v] layer\ngo [forward v] (1) layers\nwait (0.1) seconds\nswitch costume to (コスチューム1 v)\nforever\n    if <(鍵ゲット) = [1]> then\n        switch costume to (コスチューム1 v)\n    else\n        switch costume to (コスチューム8 v)\n    end\nend\n\nhide\n\nwhen I receive [ステージ次だよーん v]\nnext costume\n\nwhen I receive [タイトル表示 v]\nshow\n\nwhen I receive [扉。煽れ v]\n\n@スプライト7\n\nwhen flag clicked\nshow\nswitch costume to (コスチューム1 v)\nset [ステージ v] to [1]\nset [鍵ゲット v] to [0]\nset size to (100) %\ngo to [back v] layer\ngo [forward v] (1) layers\nforever\n    repeat (40)\n        change size by (0.25)\n    end\n    repeat (40)\n        change size by (-0.25)\n    end\nend\n\nwhen I receive [ステージ次だよーん v]\nchange [ステージ v] by (1)\nset [鍵ゲット v] to [0]\n\ndefine ブロック名\nif <(鍵ゲット) = [1]> then\n    if <([direction v] of [👤 v]) = [90]> then\n        go to x: (([x position v] of [👤 v]) - (20)) y: ([y position v] of [👤 v])\n    else\n        go to x: (([x position v] of [👤 v]) + (20)) y: ([y position v] of [👤 v])\n    end\nelse\n    go to x: (鍵のx座標) y: (鍵のy座標)\nend\n\nwhen flag clicked\nforever\n    鍵\n    ブロック名\nend\n\ndefine 鍵\nset [鍵のx座標 v] to (item (ステージ) of [鍵の位置x v])\nset [鍵のy座標 v] to (item (ステージ) of [鍵の位置y v])\n\nwhen flag clicked\ndelete all of [鍵の位置x v]\nadd [200] to [鍵の位置x v]\n\nwhen flag clicked\ndelete all of [鍵の位置y v]\nadd [-20] to [鍵の位置y v]\n\nwhen I receive [お疲れ様ズラ v]\nhide\n\nwhen flag clicked\nforever\n    if <(ステージ) = [2]> then\n        switch costume to (コスチューム2 v)\n    end\nend\n\nwhen I receive [タイトル表示 v]\nhide\n\nstop [this script v]\n\n@邪魔者\n\nwhen flag clicked\npoint in direction (90)\ngo to x: (0) y: (-30)\ngo to [front v] layer\ngo [forward v] (1) layers\nshow\nforever\n    turn left (2) degrees\nend\n\nwhen I receive [お疲れ様ズラ v]\nhide\nstop [other scripts in sprite v]\n\n@スプライト1\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [back v] layer\n\n@ｼﾞﾒﾝ2\n\nwhen I receive [ステージ次だよーん v]\nnext costume\n\nwhen flag clicked\nshow\nswitch costume to (コスチューム2 v)\nforever\n    go to x: (0) y: (0)\nend\n\nwhen flag clicked\nhide\nforever\n    if <<[180] < ([x position v] of [👤 v])> and <[-50] < ([y position v] of [👤 v])>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [タイトル表示 v]\nhide\n\n@邪魔者2\n\nwhen flag clicked\nhide\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    go to [back v] layer\n    if <<<([x position v] of [👤 v]) < [-120]> and <[0] < ([y position v] of [👤 v])>> and <(鍵ゲット) = [1]>> then\n        show\n        say [こんにちは^^] for (0.05) seconds\n    else\n        hide\n    end\nend\n\n@さむね\n\nwhen flag clicked\nhide\ngo to [front v] layer\n\n@スプライト2\n\nwhen flag clicked\nswitch costume to (コスチューム1 v)\npoint in direction (90)\ngo to x: (0) y: (-30)\ngo to [front v] layer\ngo [backward v] (1) layers\nshow\nforever\n    turn left (2) degrees\nend\n\nwhen I receive [ステージ次だよーん v]\nswitch costume to (コスチューム2 v)\n\n@スコア\n\nwhen flag clicked\nwait (0) seconds\nset ["" v] to [1]\nset [鍵ゲット v] to [0]\nhide variable [タイム/time v]\nhide variable [☁ わぁるどぉれこぉど v]\nforever\n    wait (1) seconds\n    if <[2] = ("")> then\n        broadcast (お疲れ様ズラ v)\n        stop [this script v]\n    end\n    change [タイム/time v] by (1)\nend\n\nwhen I receive [お疲れ様ズラ v]\nshow variable [☁ わぁるどぉれこぉど v]\nshow variable [タイム/time v]\nif <(タイム/Time) = [0]> then\n    set [☁ わぁるどぉれこぉど v] to (☁ わぁるどぉれこぉど)\nelse\n    if <(タイム/Time) < (☁ わぁるどぉれこぉど)> then\n        wait (0) seconds\n        set [☁ わぁるどぉれこぉど v] to (タイム/Time)\n    end\nend\n\nwhen I receive [タイトル表示 v]\nhide variable [タイム/time v]\nhide variable [☁ わぁるどぉれこぉど v]\n\nswitch backdrop to (背景1 v)\n\n@スプライト3\n\nwhen flag clicked\nhide\n\nwhen I receive [お疲れ様ズラ v]\ngo to [front v] layer\nswitch costume to (コスチューム1 v)\nshow\n\n@空の雲\n\nwhen I start as a clone\nshow\ngo to [back v] layer\nglide (pick random (3) to (10)) secs to x: (-276) y: (y position)\nhide\ndelete this clone\n\nwhen flag clicked\nclear graphic effects\nhide\nforever\n    switch costume to (pick random (1) to (3))\n    set [ghost v] effect to (pick random (20) to (50))\n    wait (0.2) seconds\n    create clone of (_myself_ v)\n    go to x: (276) y: (pick random (140) to (180))\nend\n\n@No turbo mode\n\nwhen flag clicked\nhide\nswitch costume to (no turbo mode v)\ngo to x: (0) y: (0)\nset rotation style [left-right v]\npoint in direction (90)\nforever\n    turn right (0.0001) degrees\n    wait (0) seconds\nend\n\nwhen flag clicked\nforever\n    wait (1) seconds\n    point in direction (90)\nend\n\nwhen flag clicked\nforever\n    if <[90.1] < (direction)> then\n        show\n        switch costume to (ターボモードになりました v)\n        go to x: (0) y: (0)\n        stop [all v]\n    else\n        hide\n        switch costume to (no turbo mode v)\n    end\nend\n\n@スプライト4\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (コスチューム1 v)\n\nwhen I receive [お疲れ様ズラ v]\nswitch costume to (ダウンロード \(71\) v)\n\n