» Topia - A Platformer

Instructions: Дойти до платформы с надписью you win за минимальное время\nесли у вас всё слишком медленно - попробуйте играть на маленьком экране\n\nGet to the platform with the text "you win" in the shortest possible time\nplaying on a small screen\nMultiplayer: https://scratch.mit.edu/projects/417269467/

@Stage\n\nwhen I receive [開始 v]\nswitch backdrop to (プレイ中 v)\nforever\n    play sound [Masked Heroes v] until done\nend\n\nwhen flag clicked\nswitch backdrop to (読み込み中 v)\nset [チャット v] to [0]\n\nwhen I receive [聞く v]\nask [どのメッセージを送りますか? 半角数字で答えてください。] and wait\nset [チャット v] to (answer)\n\n@プレイヤー\n\ndefine ユザネ数値化\nset [雑用2 v] to [0]\nset [名前 v] to []\nrepeat (length of (username))\n    change [雑用2 v] by (1)\n    switch costume to (join [コスチューム] (letter (雑用2) of (username)))\n    set [雑用1 v] to ((costume [number v]) + (10))\n    set [名前 v] to (join (名前) (雑用1))\nend\nrepeat ((20) - (length of (username)))\n    set [名前 v] to (join (名前) [75])\nend\n\ndefine 保存\nset [保存 v] to (join (([floor v] of (timer) ) mod (10)) (join (名前) (join (([floor v] of (x position) ) + (500)) (join (([floor v] of (y position) ) + (500)) (join (([floor v] of (direction) ) + (500)) (join ((ステージ) + (10)) ((チャット) + (10))))))))\nif <(プレイヤー) = [1]> then\n    set [☁ 1p v] to (保存)\nelse\n    if <(プレイヤー) = [2]> then\n        set [☁ 2p v] to (保存)\n    else\n        if <(プレイヤー) = [3]> then\n            set [☁ 3p v] to (保存)\n        else\n            if <(プレイヤー) = [4]> then\n                set [☁ 4p v] to (保存)\n            else\n                set [☁ 5p v] to (保存)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nhide\n初期化\nset rotation style [left-right v]\nset [ステージ v] to [1]\nset [プレイヤー v] to [0]\nユザネ数値化\n確認\nbroadcast (開始 v)\nforever\n    確認\nend\n\ndefine 確認\nset [確認 v] to (join (letter (1) of (☁ 1P)) (join (letter (1) of (☁ 2P)) (join (letter (1) of (☁ 3P)) (join (letter (1) of (☁ 4P)) (letter (1) of (☁ 5P))))))\nwait (2) seconds\nif <(letter (1) of (☁ 1P)) = (letter (1) of (確認))> then\n    set [☁ 1p v] to [0]\nend\nif <(letter (1) of (☁ 2P)) = (letter (2) of (確認))> then\n    set [☁ 2p v] to [0]\nend\nif <(letter (1) of (☁ 3P)) = (letter (3) of (確認))> then\n    set [☁ 3p v] to [0]\nend\nif <(letter (1) of (☁ 4P)) = (letter (4) of (確認))> then\n    set [☁ 4p v] to [0]\nend\nif <(letter (1) of (☁ 5P)) = (letter (4) of (確認))> then\n    set [☁ 5p v] to [0]\nend\nif <(プレイヤー) = [0]> then\n    if <(☁ 1P) = [0]> then\n        set [プレイヤー v] to [1]\n    else\n        if <(☁ 2P) = [0]> then\n            set [プレイヤー v] to [2]\n        else\n            if <(☁ 3P) = [0]> then\n                set [プレイヤー v] to [3]\n            else\n                if <(☁ 4P) = [0]> then\n                    set [プレイヤー v] to [4]\n                else\n                    if <(☁ 5P) = [0]> then\n                        set [プレイヤー v] to [5]\n                    else\n                        set [プレイヤー v] to [0]\n                        broadcast (満員 v)\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine 読み込み\ndelete all of [データ v]\n(☁ 1P) を読み込む\n(☁ 2P) を読み込む\n(☁ 3P) を読み込む\n(☁ 4P) を読み込む\n(☁ 5P) を読み込む\n\ndefine (数値) を読み込む\nset [雑用1 v] to [0]\nset [雑用2 v] to []\nrepeat (20)\n    change [雑用1 v] by (2)\n    switch costume to ((join (letter (雑用1) of (数値)) (letter ((雑用1) + (1)) of (数値))) - (10))\n    set [雑用2 v] to (join (雑用2) (letter (7) of (costume [name v])))\nend\nadd (雑用2) to [データ v]\nadd ((join (letter (42) of (数値)) (join (letter (43) of (数値)) (letter (44) of (数値)))) - (500)) to [データ v]\nadd ((join (letter (45) of (数値)) (join (letter (46) of (数値)) (letter (47) of (数値)))) - (500)) to [データ v]\nadd ((join (letter (48) of (数値)) (join (letter (49) of (数値)) (letter (50) of (数値)))) - (500)) to [データ v]\nadd ((join (letter (51) of (数値)) (letter (52) of (数値))) - (10)) to [データ v]\nadd (item ((join (letter (53) of (数値)) (letter (54) of (数値))) - (10)) of [チャット v]) to [データ v]\n\nwhen I receive [開始 v]\nforever\n    保存\n    読み込み\n    switch costume to (プレイヤー v)\n    if <(item ((プレイヤー) * (6)) of [データ v]) = []> then\n        say (item (((プレイヤー) * (6)) - (5)) of [データ v])\n    else\n        say (item ((プレイヤー) * (6)) of [データ v])\n    end\nend\n\nwhen I receive [開始 v]\ngo to [front v] layer\nshow\nforever\n    if <<key (right arrow v) pressed?> or <<(mouse x) > (x position)> and <mouse down?>>> then\n        point in direction (90)\n        change [x v] by (1)\n    end\n    if <<key (left arrow v) pressed?> or <<(mouse x) < (x position)> and <mouse down?>>> then\n        point in direction (-90)\n        change [x v] by (-1)\n    end\n    set [x v] to ((x) * (0.88))\n    change x by (x)\n    if <touching (地面 v)?> then\n        change y by (1)\n        if <touching (地面 v)?> then\n            change y by (1)\n            if <touching (地面 v)?> then\n                change y by (1)\n                if <touching (地面 v)?> then\n                    change y by (1)\n                    if <touching (地面 v)?> then\n                        change y by (1)\n                        if <touching (地面 v)?> then\n                            change y by (1)\n                            if <touching (地面 v)?> then\n                                change x by (() - (x))\n                                change y by (-5)\n                                if <<key (up arrow v) pressed?> or <<(mouse y) > [0]> and <mouse down?>>> then\n                                    if <(x) > [0]> then\n                                        set [x v] to [-9]\n                                    else\n                                        set [x v] to [9]\n                                    end\n                                    set [y v] to [12]\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    change [y v] by (-1)\n    change y by (y)\n    if <touching (地面 v)?> then\n        change y by (() - (y))\n        set [y v] to [0]\n    end\n    change y by (-2)\n    if <<key (up arrow v) pressed?> or <<(mouse y) > [0]> and <mouse down?>>> then\n        if <touching (地面 v)?> then\n            start sound [Jump v]\n            set [y v] to [13]\n        end\n    end\n    change y by (1)\n    if <<(y position) < [-170]> or <touching (障害物 v)?>> then\n        start sound [Rip v]\n        初期化\n    end\n    if <(x position) > [235]> then\n        hide\n        初期化\n        broadcast (NEXT v) and wait\n        wait until <(NEXT) = [0]>\n        show\n    end\nend\n\nwhen [space v] key pressed\nif <(username) = [syokaki]> then\n    set [☁ 1p v] to [0]\n    wait (0.2) seconds\n    set [☁ 2p v] to [0]\n    wait (0.2) seconds\n    set [☁ 3p v] to [0]\n    wait (0.2) seconds\n    set [☁ 4p v] to [0]\n    wait (0.2) seconds\n    set [☁ 5p v] to [0]\nend\n\ndefine 初期化\ngo to x: (-190) y: (-50)\npoint in direction (90)\nset [x v] to [0]\nset [y v] to [0]\n\n@周りの人\n\nwhen flag clicked\nhide\n\nwhen I receive [開始 v]\nクローン\n\ndefine クローン\nset [クローンno. v] to [0]\nrepeat ((プレイヤー) - (1))\n    change [クローンno. v] by (6)\n    create clone of (_myself_ v)\nend\nchange [クローンno. v] by (6)\nrepeat ((5) - (プレイヤー))\n    change [クローンno. v] by (6)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nset rotation style [left-right v]\nforever\n    if <<(item ((クローンNO.) - (5)) of [データ v]) = [33333333333333333333]> or <not <(item ((クローンNO.) - (1)) of [データ v]) = (ステージ)>>> then\n        hide\n    else\n        show\n    end\n    go to x: (item ((クローンNO.) - (4)) of [データ v]) y: (item ((クローンNO.) - (3)) of [データ v])\n    point in direction (item ((クローンNO.) - (2)) of [データ v])\n    if <(item (クローンNO.) of [データ v]) = []> then\n        say (item ((クローンNO.) - (5)) of [データ v])\n    else\n        say (item (クローンNO.) of [データ v])\n    end\nend\n\n@地面\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nswitch costume to (ステージ1 v)\ngo to [back v] layer\n\nwhen I receive [開始 v]\nshow\n\nwhen I receive [準備 v]\nnext costume\n\n@太陽\n\nwhen flag clicked\nhide\ngo to x: (210) y: (150)\n\nwhen I receive [開始 v]\nshow\nset [θ v] to [0]\nforever\n    go to x: ((([sin v] of (θ) ) * (25)) + (230)) y: ((([sin v] of (θ) ) * (25)) + (160))\n    change [θ v] by (2.5)\nend\n\n@読み込み中\n\nwhen flag clicked\n準備\nforever\n    next costume\n    wait (0.2) seconds\nend\n\nwhen I receive [開始 v]\nhide\nstop [other scripts in sprite v]\n\ndefine 準備\nswitch costume to (読み込み中1 v)\ngo to x: (0) y: (0)\nshow\n\n@障害物\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\nswitch costume to (障害物1 v)\n\nwhen I receive [開始 v]\nshow\n\nwhen I receive [準備 v]\nnext costume\n\n@チャットボタン\n\nwhen flag clicked\ngo to x: (-190) y: (-160)\nhide\nshow list [チャット v]\n\nwhen I receive [開始 v]\nshow\n\nwhen this sprite clicked\nhide list [チャット v]\nbroadcast (聞く v) and wait\nshow list [チャット v]\nwait (2) seconds\nset [チャット v] to [0]\n\n@NEXT\n\nwhen flag clicked\nhide\nset [y v] to [-26]\nset [next v] to [0]\n\nwhen I receive [next v]\nset [next v] to [1]\nswitch costume to (n v)\ngo to x: (-180) y: (378)\nrepeat (4)\n    create clone of (_myself_ v)\n    next costume\n    glide (0.25) secs to x: ((x position) + (120)) y: (378)\nend\n\nwhen I start as a clone\ngo to [front v] layer\nshow\nrepeat until <(y) > [-1]>\n    change y by (y)\n    change [y v] by (1)\nend\nwait (0.8) seconds\nif <(costume [number v]) = [1]> then\n    change [ステージ v] by (1)\n    broadcast (準備 v)\nend\nwait (0.2) seconds\nrepeat until <(y) < [-27]>\n    change y by (y)\n    change [y v] by (-1)\nend\nif <(costume [number v]) = [4]> then\n    set [next v] to [0]\nend\ndelete this clone\n\n@さむね\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nshow\nforever\n    go to [front v] layer\nend\n\n@ごめんなさい\n\nwhen flag clicked\ngo to x: (0) y: (150)\nhide\n\nwhen I receive [満員 v]\nshow\n\n