3D Platformer モチモチスライム【3】!!100%PEN

Instructions: ←↑→ or マウス or a、w、d、space、キー で操作です。(You can operation ←↑→ key or mouse or a、w、d、space、 key.\nVキーでブロックを半透明にできます。(You can make the block translucent with the V key.\n重い人はコチラ↓(Light version\nturbowarp.org/355995643\n最速記録↓\n＠nt-zzz　63.937\nクリア者先着10名↓（秒）\n@kotachu　757.416\n@TNTend    224.772\n@Pinosuke_c5　	552.748\n@DFV12　	120.674\n＠omowakagames　69.12\n@nt-zzz　63.937\n@pinonono　74.713\n@enjoy_scratch　	1348.41\n@Guapillin 789.425\n@cammyawesome321 539.912

@Stage\n\n@PENスクロールゲーム\n\ndefine 雲描画\nchange [雲のｘ v] by (-2)\nset pen color to (#ababab)\npen up\nset pen size to (30)\ngo to x: (雲のｘ) y: (雲のY)\npen down\ngo to x: ((雲のｘ) + (120)) y: (雲のY)\npen up\ngo to x: ((雲のｘ) + (20)) y: ((雲のY) + (20))\npen down\ngo to x: ((雲のｘ) + (100)) y: ((雲のY) + (20))\nif <(雲のｘ) < [-400]> then\n    set [雲のｘ v] to [300]\n    set [雲のy v] to (pick random (50) to (130))\nend\nchange [雲２ｘ v] by (-2)\npen up\ngo to x: (雲２ｘ) y: (雲２ｙ)\npen down\ngo to x: ((雲２ｘ) + (120)) y: (雲２ｙ)\npen up\ngo to x: ((雲２ｘ) + (20)) y: ((雲２ｙ) + (20))\npen down\ngo to x: ((雲２ｘ) + (100)) y: ((雲２ｙ) + (20))\nif <(雲２ｘ) < [-400]> then\n    set [雲２ｘ v] to [300]\n    set [雲２ｙ v] to (pick random (50) to (130))\nend\nset pen color to (#ffffff)\npen up\ngo to x: ((雲のｘ) - (3)) y: ((雲のY) + (3))\npen down\ngo to x: (((雲のｘ) + (120)) - (3)) y: ((雲のY) + (3))\npen up\ngo to x: (((雲のｘ) + (20)) - (3)) y: (((雲のY) + (20)) + (3))\npen down\ngo to x: (((雲のｘ) + (100)) - (3)) y: (((雲のY) + (20)) + (3))\npen up\ngo to x: ((雲２ｘ) - (3)) y: ((雲２ｙ) + (3))\npen down\ngo to x: (((雲２ｘ) + (120)) - (3)) y: ((雲２ｙ) + (3))\npen up\ngo to x: (((雲２ｘ) + (20)) - (3)) y: (((雲２ｙ) + (20)) + (3))\npen down\ngo to x: (((雲２ｘ) + (100)) - (3)) y: (((雲２ｙ) + (20)) + (3))\npen up\n\ndefine 線を引く (ｘ) (ｙ) 、 (ｘ２) (ｙ２) 太さ (太さ)\nset [x v] to (ｘ)\nset [x2 v] to (ｘ２)\nset [y v] to (ｙ)\nset [y2 v] to (ｙ２)\npen up\ngo to x: (x) y: (y)\nset pen size to (太さ)\npen down\ngo to x: (x2) y: (y2)\n\ndefine (縦) ✖ (横) の長方形を (x) , (y)\npen up\nif <<<[-240] < ((x) + (横))> and <[-240] < ((y) + (縦))>> and <<(x) < [240]> and <(y) < [240]>>> then\n    set [12x v] to (x)\n    set [12y v] to (y)\n    set [23x v] to (横)\n    set [23y v] to (縦)\n    if <[240] < ((x) + (横))> then\n        set [23x v] to ((240) - (x))\n    end\n    if <[180] < ((y) + (縦))> then\n        set [23y v] to ((180) - (y))\n    end\n    if <(x) < [-240]> then\n        set [12x v] to [-240]\n        set [23x v] to (((x) + (240)) + (横))\n    end\n    if <(y) < [-180]> then\n        set [12y v] to [-180]\n        set [23y v] to (((y) + (180)) + (縦))\n    end\n    set pen (transparency v) to (半透明化)\n    pen up\n    if <(23y) < (23x)> then\n        set pen size to (23y)\n        set [太さ保存後 v] to ((23y) / (2))\n        go to x: ((12x) + (太さ保存後)) y: ((12y) + (太さ保存後))\n        pen down\n        go to x: (((12x) + (23x)) - (太さ保存後)) y: ((12y) + (太さ保存後))\n    else\n        set pen size to (23x)\n        set [太さ保存後 v] to ((23x) / (2))\n        go to x: ((12x) + (太さ保存後)) y: ((12y) + (太さ保存後))\n        pen down\n        go to x: ((12x) + (太さ保存後)) y: (((12y) + (23y)) - (太さ保存後))\n    end\n    repeat until <(太さ保存後) < [1]>\n        set [太さ保存後 v] to (((太さ保存後) * ((1) - ((1) / ([sqrt v] of (2) )))) / (2))\n        set pen size to ((太さ保存後) * (2))\n        pen up\n        go to x: ((12x) + (太さ保存後)) y: ((12y) + (太さ保存後))\n        pen down\n        go to x: (((12x) + (23x)) - (太さ保存後)) y: ((12y) + (太さ保存後))\n        go to x: (((12x) + (23x)) - (太さ保存後)) y: (((12y) + (23y)) - (太さ保存後))\n        go to x: ((12x) + (太さ保存後)) y: (((12y) + (23y)) - (太さ保存後))\n        go to x: ((12x) + (太さ保存後)) y: ((12y) + (太さ保存後))\n    end\n    pen up\nend\n\ndefine プレーヤー\nset [演算用 v] to [1]\nif <not <(ステージ) = [2]>> then\n    set [演算用 v] to ((視力) / (75))\nend\npen up\ngo to x: (((プレーヤーｘ) - (カメラｘ)) * (演算用)) y: (((プレーヤーY) - (カメラｙ)) * (演算用))\npoint in direction (0)\nset pen (transparency v) to (0)\nset pen size to (7)\nset pen (saturation v) to (40)\nset pen (brightness v) to (100)\nset pen (color v) to (60)\nrepeat (45)\n    move (16) steps\n    turn right (8) degrees\n    set y to ((((y position) - (((プレーヤーY) - (カメラｙ)) * (演算用))) * (プレーヤー収縮率)) + (((プレーヤーY) - (カメラｙ)) * (演算用)))\n    pen down\n    go to x: (((プレーヤーｘ) - (カメラｘ)) * (演算用)) y: (((プレーヤーY) - (カメラｙ)) * (演算用))\n    pen up\nend\npoint in direction (0)\nset pen size to (7)\nset pen (saturation v) to (70)\nset pen (brightness v) to (100)\nset pen (color v) to (60)\nrepeat (45)\n    pen up\n    move (13) steps\n    turn right (8) degrees\n    set y to ((((y position) - (((プレーヤーY) - (カメラｙ)) * (演算用))) * (プレーヤー収縮率)) + (((プレーヤーY) - (カメラｙ)) * (演算用)))\n    pen down\n    go to x: (((プレーヤーｘ) - (カメラｘ)) * (演算用)) y: (((プレーヤーY) - (カメラｙ)) * (演算用))\n    pen up\nend\npen up\nset pen (saturation v) to (0)\nset pen (brightness v) to (100)\nset pen (color v) to (2)\nset pen size to (14)\ngo to x: ((((プレーヤーｘ) - (カメラｘ)) * (演算用)) + ((プレーヤーの振り向き) * (8))) y: ((((プレーヤーY) - (カメラｙ)) * (演算用)) + (3))\npen down\npen up\nset pen (saturation v) to (0)\nset pen (brightness v) to (0)\nset pen (color v) to (15)\nset pen size to (8)\ngo to x: ((((プレーヤーｘ) - (カメラｘ)) * (演算用)) + ((プレーヤーの振り向き) * (8))) y: ((((プレーヤーY) - (カメラｙ)) * (演算用)) + (3))\npen down\nchange [プレーヤー収縮率 v] by ((0.5) * (((1) - ((0.9) * ((重力慣性) / (20)))) - (プレーヤー収縮率)))\nchange [プレーヤーの振り向き v] by ((0.3) * ((プレーヤー向き) - (プレーヤーの振り向き)))\n\ndefine 点 (x1) (y1) 、 (x2) (y2) 、 (x3) (y3) の三角形を塗りつぶす\nif <<not <<(x1) = (x2)> and <(x2) = (x3)>>> and <not <<(y2) = (y1)> and <(y2) = (y3)>>>> then\n    if <not <<<[180] < (y1)> and <[180] < (y2)>> and <[180] < (y3)>>> then\n        if <not <<<(y1) < [-180]> and <(y2) < [-180]>> and <(y3) < [-180]>>> then\n            if <not <<<[240] < (x1)> and <[240] < (x2)>> and <[240] < (x3)>>> then\n                if <not <<<(x1) < [-240]> and <(x2) < [-240]>> and <(x3) < [-240]>>> then\n                    set [x1 v] to (x1)\n                    set [x2 v] to (x2)\n                    set [x3 v] to (x3)\n                    set [y1 v] to (y1)\n                    set [y2 v] to (y2)\n                    set [y3 v] to (y3)\n                    set [太さ保存後 v] to (太さ)\n                    pen up\n                    set [太さ保存後 v] to (太さ)\n                    set pen size to (太さ保存後)\n                    set pen (transparency v) to (半透明化)\n                    set [12x v] to ((x1) - (x2))\n                    set [12y v] to ((y1) - (y2))\n                    set [23x v] to ((x2) - (x3))\n                    set [23y v] to ((y2) - (y3))\n                    set [31x v] to ((x3) - (x1))\n                    set [31y v] to ((y3) - (y1))\n                    set [12 v] to ([sqrt v] of (((12x) * (12x)) + ((12y) * (12y))) )\n                    set [23 v] to ([sqrt v] of (((23x) * (23x)) + ((23y) * (23y))) )\n                    set [31 v] to ([sqrt v] of (((31x) * (31x)) + ((31y) * (31y))) )\n                    二つの線の交差位置 (x2) (y2) 、 ((x1) + (((x3) - (x1)) * ((12) / ((12) + (23))))) ((y1) + (((y3) - (y1)) * ((12) / ((12) + (23))))) と (x3) (y3) 、 ((x2) + (((x1) - (x2)) * ((23) / ((23) + (31))))) ((y2) + (((y1) - (y2)) * ((23) / ((23) + (31)))))\n                    set [三角形の中心x v] to (横2)\n                    set [三角形の中心y v] to (縦2)\n                    set [演算用 v] to ((((12) + (23)) + (31)) / (2))\n                    set [演算用 v] to ([sqrt v] of ((演算用) * (((演算用) - (12)) * (((演算用) - (23)) * ((演算用) - (31))))) )\n                    set [12x v] to ((x1) - (三角形の中心X))\n                    set [23x v] to ((x2) - (三角形の中心X))\n                    set [31x v] to ((x3) - (三角形の中心X))\n                    set [12y v] to ((y1) - (三角形の中心Y))\n                    set [23y v] to ((y2) - (三角形の中心Y))\n                    set [31y v] to ((y3) - (三角形の中心Y))\n                    set [三角形描画用最初の太さ v] to ((演算用) * ((2) / (((12) + (23)) + (31))))\n                    set [演算用２ v] to ((演算用) * ((2) / (((12) + (23)) + (31))))\n                    set [三角形描画中の太さ v] to (三角形描画用最初の太さ)\n                    if <(((23x) * (23x)) + ((23y) * (23y))) > (((12x) * (12x)) + ((12y) * (12y)))> then\n                        if <(((31x) * (31x)) + ((31y) * (31y))) > (((23x) * (23x)) + ((23y) * (23y)))> then\n                            set [演算用 v] to ([sqrt v] of (((31x) * (31x)) + ((31y) * (31y))) )\n                        else\n                            set [演算用 v] to ([sqrt v] of (((23x) * (23x)) + ((23y) * (23y))) )\n                        end\n                    else\n                        if <(((31x) * (31x)) + ((31y) * (31y))) > (((12x) * (12x)) + ((12y) * (12y)))> then\n                            set [演算用 v] to ([sqrt v] of (((31x) * (31x)) + ((31y) * (31y))) )\n                        else\n                            set [演算用 v] to ([sqrt v] of (((12x) * (12x)) + ((12y) * (12y))) )\n                        end\n                    end\n                    set [演算用 v] to ((演算用) / (2))\n                    set [演算用２ v] to (演算用)\n                    change [演算用 v] by ((-1) * ((三角形描画中の太さ) / (2)))\n                    set [三角形収縮率 v] to (((三角形描画用最初の太さ) - ((三角形描画中の太さ) / (2))) / (三角形描画用最初の太さ))\n                    repeat until <[1] > (三角形描画中の太さ)>\n                        set [12x v] to ((((x1) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\n                        set [12y v] to ((((y1) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\n                        set [23x v] to ((((x2) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\n                        set [23y v] to ((((y2) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\n                        set [31x v] to ((((x3) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\n                        set [31y v] to ((((y3) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\n                        set pen size to (三角形描画中の太さ)\n                        pen up\n                        go to x: (12x) y: (12y)\n                        pen down\n                        go to x: (23x) y: (23y)\n                        go to x: (31x) y: (31y)\n                        go to x: (12x) y: (12y)\n                        set [三角形描画中の太さ v] to ((三角形描画中の太さ) * (((演算用) / (演算用２)) / (2)))\n                        set [三角形収縮率 v] to (((三角形描画用最初の太さ) - ((三角形描画中の太さ) / (2))) / (三角形描画用最初の太さ))\n                    end\n                    set [12x v] to ((((x1) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\n                    set [12y v] to ((((y1) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\n                    set [23x v] to ((((x2) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\n                    set [23y v] to ((((y2) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\n                    set [31x v] to ((((x3) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\n                    set [31y v] to ((((y3) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\n                    set pen size to (三角形描画中の太さ)\n                    pen up\n                    go to x: (12x) y: (12y)\n                    pen down\n                    go to x: (23x) y: (23y)\n                    go to x: (31x) y: (31y)\n                    go to x: (12x) y: (12y)\n                end\n            end\n        end\n    end\nend\n\ndefine 二つの線の交差位置 (x) (y) 、 (x2) (y2) と (x3) (y3) 、 (x4) (y4)\nset [変化の割合 v] to (((y2) - (y)) / ((x2) - (x)))\nset [切片 v] to ((y) - ((変化の割合) * (x)))\nset [変化の割合２ v] to (((y3) - (y4)) / ((x3) - (x4)))\nset [切片２ v] to ((y3) - ((変化の割合２) * (x3)))\nif <(x) = (x2)> then\n    set [横2 v] to (x)\n    if <(y3) = (y4)> then\n        set [縦2 v] to (y3)\n    else\n        set [縦2 v] to (((変化の割合２) * (横2)) + (切片２))\n    end\nelse\n    if <(x3) = (x4)> then\n        set [横2 v] to (x3)\n        if <(y) = (y2)> then\n            set [縦2 v] to (y)\n        else\n            set [縦2 v] to (((変化の割合) * (横2)) + (切片))\n        end\n    else\n        if <(y) = (y2)> then\n            set [縦2 v] to (y)\n            set [横2 v] to (((縦2) - (切片２)) / (変化の割合２))\n        else\n            if <(y3) = (y4)> then\n                set [縦2 v] to (y3)\n                set [横2 v] to (((縦2) - (切片)) / (変化の割合))\n            else\n                set [横2 v] to (((切片) - (切片２)) / ((変化の割合２) - (変化の割合)))\n                set [縦2 v] to (((変化の割合) * (横2)) + (切片))\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [ステージ v] to [1]\nreset timer\nbroadcast (リスポーン v)\n\ndefine (高さ) ✖ (横) を (x) , (y) ブロック種類 (種類)\nif <<<[-240] < ((x) + (横))> and <[-240] < ((y) + (高さ))>> and <<(x) < [240]> and <(y) < [240]>>> then\n    add (種類) to [色当たり判定 v]\n    add (種類) to [色当たり判定 v]\n    add (種類) to [色当たり判定 v]\n    add (種類) to [色当たり判定 v]\n    add (x) to [x当たり判定 v]\n    add (y) to [y当たり判定 v]\n    add ((x) + (横)) to [x当たり判定 v]\n    add (y) to [y当たり判定 v]\n    add (x) to [x当たり判定 v]\n    add ((y) + (高さ)) to [y当たり判定 v]\n    add ((x) + (横)) to [x当たり判定 v]\n    add ((y) + (高さ)) to [y当たり判定 v]\n    add (x) to [x当たり判定 v]\n    add (y) to [y当たり判定 v]\n    add (x) to [x当たり判定 v]\n    add ((y) + (高さ)) to [y当たり判定 v]\n    add ((x) + (横)) to [x当たり判定 v]\n    add (y) to [y当たり判定 v]\n    add ((x) + (横)) to [x当たり判定 v]\n    add ((y) + (高さ)) to [y当たり判定 v]\nend\nif <(種類) = [1]> then\n    set pen color to (#fff40b)\n    set [枠線 v] to [-80]\nelse\n    if <(種類) = [2]> then\n        set pen color to (#ff3d3d)\n        set pen (color v) to ((10) - ((20) * ([abs v] of ((ブロック慣性) - (0.5)) )))\n        set [枠線 v] to [-20]\n    else\n        if <(種類) = [3]> then\n            set pen color to (#0affe6)\n            set [枠線 v] to [-80]\n        else\n            if <(種類) = [4]> then\n                set pen color to (#fff40b)\n                set [枠線 v] to [-80]\n            else\n                set pen color to (#84ff0a)\n                set [枠線 v] to [-80]\n            end\n        end\n    end\nend\npen up\nif <not <<[0] < (x)> or <((x) + (横)) < [0]>>> then\n    (高さ) ✖ (横) の長方形を (x) , (y)\n    if <not <<(y) < [0]> and <[0] < ((y) + (高さ))>>> then\n        if <(y) < [0]> then\n            点 (x) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) の三角形を塗りつぶす\n            点 (x) ((y) + (高さ)) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 ((x) + (横)) ((y) + (高さ)) の三角形を塗りつぶす\n            set pen size to (4)\n            change pen (saturation v) by (枠線)\n            pen up\n            go to x: (x) y: ((y) + (高さ))\n            pen down\n            go to x: ((x) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n            go to x: (((x) + (横)) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n            go to x: ((x) + (横)) y: ((y) + (高さ))\n        else\n            点 (x) (y) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n            点 (x) (y) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 ((x) + (横)) (y) の三角形を塗りつぶす\n            set pen size to (4)\n            change pen (saturation v) by (枠線)\n            pen up\n            go to x: (x) y: (y)\n            pen down\n            go to x: ((x) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n            go to x: (((x) + (横)) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n            go to x: ((x) + (横)) y: (y)\n        end\n    else\n        set pen size to (4)\n        change pen (saturation v) by (枠線)\n    end\nelse\n    if <not <<[0] < (y)> or <((y) + (高さ)) < [0]>>> then\n        (高さ) ✖ (横) の長方形を (x) , (y)\n        if <(x) < [0]> then\n            点 ((x) + (横)) (y) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 ((x) + (横)) ((y) + (高さ)) の三角形を塗りつぶす\n            点 ((x) + (横)) ((y) + (高さ)) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n            set pen size to (4)\n            change pen (saturation v) by (枠線)\n            pen up\n            go to x: ((x) + (横)) y: ((y) + (高さ))\n            pen down\n            go to x: (((x) + (横)) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n            go to x: (((x) + (横)) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n            go to x: ((x) + (横)) y: (y)\n        else\n            点 (x) (y) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 (x) ((y) + (高さ)) の三角形を塗りつぶす\n            点 (x) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n            set pen size to (4)\n            change pen (saturation v) by (枠線)\n            pen up\n            go to x: (x) y: ((y) + (高さ))\n            pen down\n            go to x: ((x) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n            go to x: ((x) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n            go to x: (x) y: (y)\n        end\n    else\n        if <[0] < ((y) + (高さ))> then\n            if <[0] < (x)> then\n                点 ((x) + (横)) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (x) ((y) + (高さ)) の三角形を塗りつぶす\n                点 ((x) + (横)) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n                点 ((x) + (横)) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n                点 ((x) + (横)) ((y) + (高さ)) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 ((x) + (横)) (y) の三角形を塗りつぶす\n                set pen size to (4)\n                change pen (saturation v) by (枠線)\n                pen up\n                go to x: (x) y: ((y) + (高さ))\n                pen down\n                go to x: ((x) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                go to x: ((x) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                go to x: (x) y: (y)\n                pen up\n                go to x: ((x) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                pen down\n                go to x: (((x) + (横)) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                go to x: ((x) + (横)) y: (y)\n            else\n                点 (x) ((y) + (高さ)) 、 ((x) + (横)) ((y) + (高さ)) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) の三角形を塗りつぶす\n                点 (x) ((y) + (高さ)) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n                点 (x) ((y) + (高さ)) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n                点 (x) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 (x) (y) の三角形を塗りつぶす\n                set pen size to (4)\n                change pen (saturation v) by (枠線)\n                pen up\n                go to x: ((x) + (横)) y: ((y) + (高さ))\n                pen down\n                go to x: (((x) + (横)) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                go to x: (((x) + (横)) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                go to x: ((x) + (横)) y: (y)\n                pen up\n                go to x: (((x) + (横)) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                pen down\n                go to x: ((x) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                go to x: (x) y: (y)\n            end\n        else\n            if <[0] < (x)> then\n                点 ((x) + (横)) (y) 、 (x) (y) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n                点 ((x) + (横)) (y) 、 ((x) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) の三角形を塗りつぶす\n                点 ((x) + (横)) (y) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) の三角形を塗りつぶす\n                点 ((x) + (横)) (y) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 ((x) + (横)) ((y) + (高さ)) の三角形を塗りつぶす\n                set pen size to (4)\n                change pen (saturation v) by (枠線)\n                pen up\n                go to x: (x) y: ((y) + (高さ))\n                pen down\n                go to x: ((x) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                go to x: ((x) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                go to x: (x) y: (y)\n                pen up\n                go to x: ((x) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                pen down\n                go to x: (((x) + (横)) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                go to x: ((x) + (横)) y: ((y) + (高さ))\n            else\n                点 (x) (y) 、 (x) ((y) + (高さ)) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) の三角形を塗りつぶす\n                点 (x) (y) 、 ((x) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) の三角形を塗りつぶす\n                点 (x) (y) 、 (((x) + (横)) * ((視力) / (100))) (((y) + (高さ)) * ((視力) / (100))) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) の三角形を塗りつぶす\n                点 (x) (y) 、 (((x) + (横)) * ((視力) / (100))) ((y) * ((視力) / (100))) 、 ((x) + (横)) (y) の三角形を塗りつぶす\n                set pen size to (4)\n                change pen (saturation v) by (枠線)\n                pen up\n                go to x: (x) y: ((y) + (高さ))\n                pen down\n                go to x: ((x) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                go to x: (((x) + (横)) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n                go to x: (((x) + (横)) * ((視力) / (100))) y: ((y) * ((視力) / (100)))\n                go to x: ((x) + (横)) y: (y)\n                pen up\n                go to x: ((x) + (横)) y: ((y) + (高さ))\n                pen down\n                go to x: (((x) + (横)) * ((視力) / (100))) y: (((y) + (高さ)) * ((視力) / (100)))\n            end\n        end\n    end\nend\npen up\ngo to x: (x) y: (y)\npen down\ngo to x: (x) y: ((y) + (高さ))\ngo to x: ((x) + (横)) y: ((y) + (高さ))\ngo to x: ((x) + (横)) y: (y)\ngo to x: (x) y: (y)\nchange pen (saturation v) by ((-1) * (枠線))\npen up\n\ndefine 描画\nset [fps計算 v] to ((timer) - (fps計算))\nset [fps v] to ((1) / (fps計算))\nset [fps平均 v] to ((round (((((fps平均) + ((fps平均) + ((fps平均) + (fps平均)))) + (fps)) / (5)) * (10))) / (10))\nif <(fps平均) = [infinity]> then\n    set [fps平均 v] to [25]\nend\ndelete all of [x当たり判定 v]\ndelete all of [y当たり判定 v]\ndelete all of [色当たり判定 v]\ngo to x: (0) y: (0)\nset pen color to (#73e3ff)\nset pen size to (600)\npen down\n雲描画\ndelete all of [ｘ v]\ndelete all of [ｙ v]\ndelete all of [横 v]\ndelete all of [縦 v]\ndelete all of [種類 v]\ndelete all of [中心までの距離 v]\nset [描画命令番号 v] to [0]\nif <(ステージ) = [1]> then\n    repeat (2)\n        横の奥行き補正後 [1] ✖ [1] 、 [0] [0] 種類 [0]\n        横の奥行き補正後 [300] ✖ [300] 、 (() - (カメラｘ)) ((() - (300)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [199] ✖ [100] 、 ((300) - (カメラｘ)) ((-201) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [300] ✖ [200] 、 ((400) - (カメラｘ)) ((() - (300)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [300] ✖ [100] 、 ((600) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [100] ✖ [200] 、 ((800) - (カメラｘ)) (((100) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [100] ✖ [300] 、 ((1100) - (カメラｘ)) (((100) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [200] ✖ [100] 、 ((1400) - (カメラｘ)) (((100) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [50] ✖ [100] 、 ((1200) - (カメラｘ)) (((350) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [50] ✖ [100] 、 ((1400) - (カメラｘ)) (((500) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [50] ✖ [100] 、 ((1400) - (カメラｘ)) (((500) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [400] ✖ [200] 、 ((1600) - (カメラｘ)) (((200) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [199] ✖ [200] 、 ((1800) - (カメラｘ)) (((400) - ()) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [200] ✖ [100] 、 ((2000) - (カメラｘ)) (((400) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [299] ✖ [100] 、 ((2100) - (カメラｘ)) (((400) - ()) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [200] ✖ [300] 、 ((2200) - (カメラｘ)) (((400) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [100] ✖ [100] 、 ((2650) - (カメラｘ)) (((650) - ()) - (カメラｙ)) 種類 [5]\n        set [描画命令番号 v] to [1]\n    end\nend\nif <(ステージ) = [2]> then\n    add [180] to [y当たり判定 v]\n    add [240] to [x当たり判定 v]\n    add [-180] to [y当たり判定 v]\n    add [240] to [x当たり判定 v]\n    repeat (2)\n        横の奥行き補正後 [1] ✖ [1] 、 [0] [0] 種類 [0]\n        横の奥行き補正後 [300] ✖ [300] 、 (() - (カメラｘ)) ((() - (300)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [300] ✖ [300] 、 ((300) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [300] ✖ [500] 、 ((600) - (カメラｘ)) ((() - (300)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [300] ✖ [100] 、 ((700) - (カメラｘ)) (((100) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [1] ✖ [200] 、 ((800) - (カメラｘ)) (((100) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [350] ✖ [100] 、 ((1100) - (カメラｘ)) ((() - (100)) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [1] ✖ [200] 、 ((900) - (カメラｘ)) (((200) - ()) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [200] ✖ [200] 、 ((1200) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [300] ✖ [100] 、 ((1400) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [200] ✖ [100] 、 ((1500) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [300] ✖ [100] 、 ((1600) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [200] ✖ [200] 、 ((1700) - (カメラｘ)) ((() - (200)) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [200] ✖ [100] 、 ((2000) - (カメラｘ)) ((() - (100)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [50] ✖ [50] 、 ((2100) - (カメラｘ)) (((50) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [50] ✖ [50] 、 ((2200) - (カメラｘ)) (((50) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [50] ✖ [50] 、 ((2300) - (カメラｘ)) (((50) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [50] ✖ [50] 、 ((2300) - (カメラｘ)) (((50) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [50] ✖ [50] 、 ((2400) - (カメラｘ)) (((50) - ()) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [200] ✖ [100] 、 ((2500) - (カメラｘ)) ((() - (100)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [300] ✖ [100] 、 ((2700) - (カメラｘ)) ((() - (100)) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [200] ✖ [100] 、 ((2900) - (カメラｘ)) ((() - (100)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [50] ✖ [50] 、 ((3200) - (カメラｘ)) ((() - (50)) - (カメラｙ)) 種類 [5]\n        set [描画命令番号 v] to [1]\n    end\nend\nif <(ステージ) = [3]> then\n    repeat (2)\n        横の奥行き補正後 [1] ✖ [1] 、 [0] [0] 種類 [0]\n        横の奥行き補正後 [300] ✖ [300] 、 (() - (カメラｘ)) ((() - (300)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [100] ✖ [100] 、 (((300) + ((100) * (ブロック慣性))) - (カメラｘ)) ((() - ()) - (カメラｙ)) 種類 [4]\n        横の奥行き補正後 [100] ✖ [100] 、 (((600) + ()) - (カメラｘ)) (((100) * (ブロック慣性)) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [100] ✖ [100] 、 (((700) + ((100) * (ブロック慣性))) - (カメラｘ)) ((200) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [100] ✖ [100] 、 (((800) + ()) - (カメラｘ)) (() - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [200] ✖ [100] 、 (((900) + ()) - (カメラｘ)) (() - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1100) + ((100) * (ブロック慣性))) - (カメラｘ)) ((100) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1300) + ((100) * (ブロック慣性))) - (カメラｘ)) ((100) - (カメラｙ)) 種類 [4]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1500) + ((100) * (ブロック慣性))) - (カメラｘ)) ((100) - (カメラｙ)) 種類 [3]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1400) + ()) - (カメラｘ)) (((200) + ((100) * (ブロック慣性))) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1700) + ()) - (カメラｘ)) (((200) + ((100) * (ブロック慣性))) - (カメラｙ)) 種類 [1]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1900) + ((100) * (ブロック慣性))) - (カメラｘ)) (((150) + ()) - (カメラｙ)) 種類 [4]\n        横の奥行き補正後 [100] ✖ [100] 、 (((1900) + ()) - (カメラｘ)) (((400) + ((-100) * (ブロック慣性))) - (カメラｙ)) 種類 [2]\n        横の奥行き補正後 [100] ✖ [100] 、 (((2200) + ()) - (カメラｘ)) (((400) + ((-100) * (ブロック慣性))) - (カメラｙ)) 種類 [3]\n        if <[0.5] < ((100) * (ブロック慣性))> then\n            横の奥行き補正後 ((100) * (ブロック慣性)) ✖ ((100) * (ブロック慣性)) 、 (((2450) + ((-50) * (ブロック慣性))) - (カメラｘ)) (((650) + ((-50) * (ブロック慣性))) - (カメラｙ)) 種類 [5]\n        end\n        set [描画命令番号 v] to [1]\n    end\nend\nプレーヤー\nプレーヤー移動\nif <(ステージ) = [2]> then\n    change [カメラｘ v] by (5)\n    set [カメラｙ v] to [100]\nelse\n    change [カメラｘ v] by (((プレーヤーｘ) - (カメラｘ)) * (0.15))\n    change [カメラｙ v] by ((round (((((プレーヤーY) - (カメラｙ)) - (-50)) * (0.1)) * (5))) / (5))\nend\nset [fps計算 v] to (timer)\n\ndefine 当たり判定、線 (x) (y) 、 (x2) (y2)\nset [当たり判定用変数 v] to [0]\nrepeat ((length of [x当たり判定 v]) / (2))\n    change [当たり判定用変数 v] by (1)\n    二つの線の交差位置 (x) (y) 、 (x2) (y2) と (item (((当たり判定用変数) * (2)) - (1)) of [x当たり判定 v]) (item (((当たり判定用変数) * (2)) - (1)) of [y当たり判定 v]) 、 (item ((当たり判定用変数) * (2)) of [x当たり判定 v]) (item ((当たり判定用変数) * (2)) of [y当たり判定 v])\n    set [12x v] to ([abs v] of ((x2) - (x)) )\n    set [12y v] to ([abs v] of ((y2) - (y)) )\n    set [23x v] to ([abs v] of ((item (((当たり判定用変数) * (2)) - (1)) of [x当たり判定 v]) - (item ((当たり判定用変数) * (2)) of [x当たり判定 v])) )\n    set [23y v] to ([abs v] of ((item (((当たり判定用変数) * (2)) - (1)) of [y当たり判定 v]) - (item ((当たり判定用変数) * (2)) of [y当たり判定 v])) )\n    if <not <(12x) < ([abs v] of ((横2) - (x)) )>> then\n        if <not <(12x) < ([abs v] of ((横2) - (x2)) )>> then\n            if <not <(12x) < ([abs v] of ((横2) - (x2)) )>> then\n                if <not <(12y) < ([abs v] of ((縦2) - (y)) )>> then\n                    if <not <(12y) < ([abs v] of ((縦2) - (y2)) )>> then\n                        if <not <(23x) < ([abs v] of ((横2) - (item (((当たり判定用変数) * (2)) - (1)) of [x当たり判定 v])) )>> then\n                            if <not <(23x) < ([abs v] of ((横2) - (item ((当たり判定用変数) * (2)) of [x当たり判定 v])) )>> then\n                                if <not <(23y) < ([abs v] of ((縦2) - (item (((当たり判定用変数) * (2)) - (1)) of [y当たり判定 v])) )>> then\n                                    if <not <(23y) < ([abs v] of ((縦2) - (item ((当たり判定用変数) * (2)) of [y当たり判定 v])) )>> then\n                                        set [当たり判定 v] to [1]\n                                        if <(item (当たり判定用変数) of [色当たり判定 v]) = [2]> then\n                                            start sound [Oops v]\n                                            broadcast (リスポーン v)\n                                            stop [this script v]\n                                        end\n                                        if <(item (当たり判定用変数) of [色当たり判定 v]) = [5]> then\n                                            broadcast (クリア v)\n                                            stop [this script v]\n                                        end\n                                        if <(item (当たり判定用変数) of [色当たり判定 v]) = [4]> then\n                                            set [横の動くブロックに乗っている v] to [1]\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\npen up\nif <(ステージ) = [2]> then\n    if <(プレーヤーY) < [-100]> then\n        start sound [Oops v]\n        broadcast (リスポーン v)\n    end\nelse\n    if <(プレーヤーY) < [-300]> then\n        start sound [Oops v]\n        broadcast (リスポーン v)\n    end\nend\n\ndefine プレーヤー当たり判定\nset [当たり判定 v] to [0]\nset [横の動くブロックに乗っている v] to [0]\n当たり判定、線 ((10) - ((カメラｘ) - (プレーヤーｘ))) ((-22) - ((カメラｙ) - (プレーヤーY))) 、 ((22) - ((カメラｘ) - (プレーヤーｘ))) (() - ((カメラｙ) - (プレーヤーY)))\n当たり判定、線 ((-10) - ((カメラｘ) - (プレーヤーｘ))) ((-22) - ((カメラｙ) - (プレーヤーY))) 、 ((-22) - ((カメラｘ) - (プレーヤーｘ))) (() - ((カメラｙ) - (プレーヤーY)))\n当たり判定、線 ((10) - ((カメラｘ) - (プレーヤーｘ))) ((22) - ((カメラｙ) - (プレーヤーY))) 、 ((22) - ((カメラｘ) - (プレーヤーｘ))) (() - ((カメラｙ) - (プレーヤーY)))\n当たり判定、線 ((-10) - ((カメラｘ) - (プレーヤーｘ))) ((22) - ((カメラｙ) - (プレーヤーY))) 、 ((-22) - ((カメラｘ) - (プレーヤーｘ))) (() - ((カメラｙ) - (プレーヤーY)))\n当たり判定、線 ((22) - ((カメラｘ) - (プレーヤーｘ))) (() - ((カメラｙ) - (プレーヤーY))) 、 ((-22) - ((カメラｘ) - (プレーヤーｘ))) (() - ((カメラｙ) - (プレーヤーY)))\n\ndefine プレーヤー移動\nset [移動する v] to [0]\nset [ジャンプする v] to [0]\nif <mouse down?> then\n    if <[10] < ([abs v] of ((mouse x) - ((プレーヤーｘ) - (カメラｘ))) )> then\n        if <((プレーヤーｘ) - (カメラｘ)) < (mouse x)> then\n            set [移動する v] to [1]\n            set [プレーヤー向き v] to [1]\n        else\n            set [移動する v] to [-1]\n            set [プレーヤー向き v] to [-1]\n        end\n    end\n    if <((-1) * ((プレーヤーY) - (カメラｙ))) < ((mouse y) + (50))> then\n        set [ジャンプする v] to [1]\n    end\nelse\n    if <<key (left arrow v) pressed?> and <key (right arrow v) pressed?>> then\n        set [移動する v] to [0]\n    else\n        if <key (right arrow v) pressed?> then\n            set [移動する v] to [1]\n            set [プレーヤー向き v] to [1]\n        end\n        if <key (left arrow v) pressed?> then\n            set [移動する v] to [-1]\n            set [プレーヤー向き v] to [-1]\n        end\n    end\n    if <key (up arrow v) pressed?> then\n        set [ジャンプする v] to [1]\n    end\n    if <<key (a v) pressed?> and <key (d v) pressed?>> then\n        set [移動する v] to [0]\n    else\n        if <key (d v) pressed?> then\n            set [移動する v] to [1]\n            set [プレーヤー向き v] to [1]\n        end\n        if <key (a v) pressed?> then\n            set [移動する v] to [-1]\n            set [プレーヤー向き v] to [-1]\n        end\n    end\n    if <key (w v) pressed?> then\n        set [ジャンプする v] to [1]\n    end\n    if <key (space v) pressed?> then\n        set [ジャンプする v] to [1]\n    end\nend\nif <(移動する) = [1]> then\n    if <(移動慣性) < [12]> then\n        change [移動慣性 v] by (1)\n    end\nend\nif <(移動する) = [-1]> then\n    if <[-12] < (移動慣性)> then\n        change [移動慣性 v] by (-1)\n    end\nend\nif <(移動する) = [0]> then\n    if <([abs v] of (移動慣性) ) < [1]> then\n        set [移動慣性 v] to ((移動慣性) * (0.5))\n    else\n        change [移動慣性 v] by ((-1) * ((移動慣性) / ([abs v] of (移動慣性) )))\n    end\nend\nchange [プレーヤーy v] by (重力慣性)\nif <(重力慣性) > [0]> then\n    プレーヤー当たり判定\n    if <(当たり判定) = [1]> then\n        set [重力慣性 v] to [0]\n        repeat until <(当たり判定) = [0]>\n            プレーヤー当たり判定\n            change [プレーヤーy v] by (-1)\n        end\n        change [プレーヤーy v] by (-1)\n    end\nend\nchange [プレーヤーy v] by (-1)\nプレーヤー当たり判定\nif <(当たり判定) = [1]> then\n    set [重力慣性 v] to [0]\n    repeat until <(当たり判定) = [0]>\n        change [プレーヤーy v] by (1)\n        プレーヤー当たり判定\n    end\n    if <(ジャンプする) = [1]> then\n        start sound [Jump v]\n        set [重力慣性 v] to [23]\n        change [プレーヤーy v] by (重力慣性)\n        プレーヤー当たり判定\n        if <(当たり判定) = [1]> then\n            set [重力慣性 v] to [0]\n            repeat until <(当たり判定) = [0]>\n                プレーヤー当たり判定\n                change [プレーヤーy v] by (-1)\n            end\n            change [プレーヤーy v] by (-1)\n        end\n    end\nelse\n    change [プレーヤーy v] by (1)\n    if <[-16] < (重力慣性)> then\n        change [重力慣性 v] by (-2)\n    end\nend\nchange [プレーヤーｘ v] by (移動慣性)\nif <not <(移動慣性) = [0]>> then\n    if <[0] < (移動慣性)> then\n        プレーヤー当たり判定\n        if <(当たり判定) = [1]> then\n            change [プレーヤーy v] by (4)\n            プレーヤー当たり判定\n            if <(当たり判定) = [1]> then\n                set [移動慣性 v] to [0]\n                repeat until <(当たり判定) = [0]>\n                    change [プレーヤーｘ v] by (-1)\n                    プレーヤー当たり判定\n                end\n            end\n            change [プレーヤーy v] by (-4)\n        end\n    else\n        プレーヤー当たり判定\n        if <(当たり判定) = [1]> then\n            change [プレーヤーy v] by (4)\n            プレーヤー当たり判定\n            if <(当たり判定) = [1]> then\n                set [移動慣性 v] to [0]\n                repeat until <(当たり判定) = [0]>\n                    change [プレーヤーｘ v] by (1)\n                    プレーヤー当たり判定\n                end\n            end\n            change [プレーヤーy v] by (-4)\n        end\n    end\nend\nchange [プレーヤーy v] by (-1)\nプレーヤー当たり判定\nif <(横の動くブロックに乗っている) = [1]> then\n    change [プレーヤーｘ v] by ((100) * ((ブロック慣性) - (ブロック慣性動作前)))\nend\n\ndefine 横の奥行き補正後 (縦) ✖ (横) 、 (x) (y) 種類 (種類)\nif <(描画命令番号) = [0]> then\n    if <<(((x) + (横)) * ((視力) / (100))) > [-240]> and <[240] > ((x) * ((視力) / (100)))>> then\n        if <<(((y) + (縦)) * ((視力) / (100))) > [-180]> and <[180] > ((y) * ((視力) / (100)))>> then\n            set [ブロック並べ替え用変数 v] to [0]\n            if <(ブロック並べ替え用変数) = (length of [ｘ v])> then\n                change [ブロック並べ替え用変数 v] by (1)\n                insert (x) at (ブロック並べ替え用変数) of [ｘ v] \n                insert (y) at (ブロック並べ替え用変数) of [ｙ v] \n                insert (縦) at (ブロック並べ替え用変数) of [縦 v] \n                insert (横) at (ブロック並べ替え用変数) of [横 v] \n                insert (種類) at (ブロック並べ替え用変数) of [種類 v] \n                if <([abs v] of (x) ) < ([abs v] of ((x) + (横)) )> then\n                    insert ([abs v] of ((x) + (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                else\n                    insert ([abs v] of (((x) + (横)) - (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                end\n            else\n                repeat until <((ブロック並べ替え用変数) + (1)) > (length of [ｘ v])>\n                    change [ブロック並べ替え用変数 v] by (1)\n                    if <([abs v] of (x) ) < ([abs v] of ((x) + (横)) )> then\n                        if <(item (ブロック並べ替え用変数) of [中心までの距離 v]) < ([abs v] of (x) )> then\n                            insert (x) at (ブロック並べ替え用変数) of [ｘ v] \n                            insert (y) at (ブロック並べ替え用変数) of [ｙ v] \n                            insert (縦) at (ブロック並べ替え用変数) of [縦 v] \n                            insert (横) at (ブロック並べ替え用変数) of [横 v] \n                            insert (種類) at (ブロック並べ替え用変数) of [種類 v] \n                            if <([abs v] of (x) ) < ([abs v] of ((x) + (横)) )> then\n                                insert ([abs v] of ((x) + (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                            else\n                                insert ([abs v] of (((x) + (横)) - (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                            end\n                            set [ブロック並べ替え用変数 v] to ((length of [ｘ v]) + (3))\n                        end\n                    else\n                        if <(item (ブロック並べ替え用変数) of [中心までの距離 v]) < ([abs v] of ((x) + (横)) )> then\n                            insert (x) at (ブロック並べ替え用変数) of [ｘ v] \n                            insert (y) at (ブロック並べ替え用変数) of [ｙ v] \n                            insert (縦) at (ブロック並べ替え用変数) of [縦 v] \n                            insert (横) at (ブロック並べ替え用変数) of [横 v] \n                            insert (種類) at (ブロック並べ替え用変数) of [種類 v] \n                            if <([abs v] of (x) ) < ([abs v] of ((x) + (横)) )> then\n                                insert ([abs v] of ((x) + (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                            else\n                                insert ([abs v] of (((x) + (横)) - (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                            end\n                            set [ブロック並べ替え用変数 v] to ((length of [ｘ v]) + (3))\n                        end\n                    end\n                end\n                if <((ブロック並べ替え用変数) + (2)) > (length of [ｘ v])> then\n                    insert (x) at (ブロック並べ替え用変数) of [ｘ v] \n                    insert (y) at (ブロック並べ替え用変数) of [ｙ v] \n                    insert (縦) at (ブロック並べ替え用変数) of [縦 v] \n                    insert (横) at (ブロック並べ替え用変数) of [横 v] \n                    insert (種類) at (ブロック並べ替え用変数) of [種類 v] \n                    if <([abs v] of (x) ) < ([abs v] of ((x) + (横)) )> then\n                        insert ([abs v] of ((x) + (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                    else\n                        insert ([abs v] of (((x) + (横)) - (0.1)) ) at (ブロック並べ替え用変数) of [中心までの距離 v] \n                    end\n                end\n            end\n        end\n    end\nelse\n    if <(描画命令番号) < ((length of [ｘ v]) + (1))> then\n        if <not <(item (描画命令番号) of [種類 v]) = [0]>> then\n            (item (描画命令番号) of [縦 v]) ✖ (item (描画命令番号) of [横 v]) を (item (描画命令番号) of [ｘ v]) , (item (描画命令番号) of [ｙ v]) ブロック種類 (item (描画命令番号) of [種類 v])\n        end\n        change [描画命令番号 v] by (1)\n    end\nend\n\nwhen I receive [リスポーン v]\nhide\nswitch costume to (点 v)\nset size to (150) %\nswitch costume to (コスチューム1 v)\nset [モード v] to [0]\nset [太さ v] to [1]\nset [プレーヤーｘ v] to [50]\nset [プレーヤーy v] to [300]\nset [移動慣性 v] to [0]\nset [重力慣性 v] to [0]\nset [視力 v] to [55]\nset [プレーヤー向き v] to [1]\nset [ブロック慣性計算 v] to [0]\nset [雲のｘ v] to [300]\nset [雲のy v] to (pick random (50) to (140))\nset [雲２ｘ v] to [700]\nset [雲２ｙ v] to (pick random (50) to (140))\nif <(ステージ) = [2]> then\n    set [カメラｘ v] to [0]\nend\nset [fps計算 v] to (timer)\nforever\n    描画\nend\n\nset [三角形描画中の太さ v] to [1]\nset [三角形収縮率 v] to (((三角形描画用最初の太さ) - ((三角形描画中の太さ) / (2))) / (三角形描画用最初の太さ))\nset [12x v] to ((((x1) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\nset [12y v] to ((((y1) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\nset [23x v] to ((((x2) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\nset [23y v] to ((((y2) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\nset [31x v] to ((((x3) - (三角形の中心X)) * (三角形収縮率)) + (三角形の中心X))\nset [31y v] to ((((y3) - (三角形の中心Y)) * (三角形収縮率)) + (三角形の中心Y))\nset pen size to (三角形描画中の太さ)\npen up\ngo to x: (12x) y: (12y)\npen down\ngo to x: (23x) y: (23y)\ngo to x: (31x) y: (31y)\ngo to x: (12x) y: (12y)\npen up\n\nwhen I receive [クリア v]\nstop [other scripts in sprite v]\nplay sound [Win v] until done\nif <(ステージ) = [3]> then\n    go to x: ((プレーヤーｘ) - (カメラｘ)) y: ((プレーヤーY) - (カメラｙ))\n    switch costume to (点 v)\n    set [☁ clear time v] to (timer)\n    set [クリアタイム保存 v] to (timer)\n    forever\n        show\n        say [クリア！！] for (2) seconds\n        say (join (join [クリアタイム　] (クリアタイム保存)) [秒]) for (3) seconds\n        say (join (join [Clear time ] (クリアタイム保存)) [s]) for (3) seconds\n        say [☆Thank you for playing!!♡] for (2) seconds\n    end\nelse\n    change [ステージ v] by (1)\n    broadcast (リスポーン v)\nend\n\nwhen I receive [リスポーン v]\nforever\n    repeat until <[0.999] < (ブロック慣性)>\n        set [ブロック慣性計算 v] to ((ブロック慣性) - (1))\n        set [ブロック慣性動作前 v] to (ブロック慣性)\n        set [ブロック慣性 v] to (((ブロック慣性計算) * (0.9)) + (1))\n    end\n    repeat until <(ブロック慣性) < [0.001]>\n        set [ブロック慣性動作前 v] to (ブロック慣性)\n        set [ブロック慣性 v] to ((ブロック慣性) * (0.9))\n    end\nend\n\nif <(モード) = [1]> then\n    if <<[180] < (y2)> and <[180] < (y3)>> then\n        二つの線の交差位置 (x2) (y2) 、 (x1) (y1) と [240] [180] 、 [240] [180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n        二つの線の交差位置 (x3) (y3) 、 (x1) (y1) と [240] [180] 、 [-240] [180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n    end\n    if <<(y2) < [-180]> and <(y3) < [-180]>> then\n        二つの線の交差位置 (x2) (y2) 、 (x1) (y1) と [240] [-180] 、 [-240] [-180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n        二つの線の交差位置 (x3) (y3) 、 (x1) (y1) と [240] [-180] 、 [-240] [-180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n    end\n    if <<[180] < (y1)> and <[180] < (y2)>> then\n        二つの線の交差位置 (x1) (y1) 、 (x3) (y3) と [240] [180] 、 [-240] [180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n        二つの線の交差位置 (x2) (y2) 、 (x3) (y3) と [240] [180] 、 [-240] [180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n    end\n    if <<(y1) < [-180]> and <(y2) < [-180]>> then\n        二つの線の交差位置 (x1) (y1) 、 (x3) (y3) と [240] [-180] 、 [-240] [-180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n        二つの線の交差位置 (x2) (y2) 、 (x3) (y3) と [240] [-180] 、 [-240] [-180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n    end\n    if <<[180] < (y3)> and <[180] < (y1)>> then\n        二つの線の交差位置 (x3) (y3) 、 (x2) (y2) と [240] [180] 、 [-240] [180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n        二つの線の交差位置 (x1) (y1) 、 (x2) (y2) と [240] [180] 、 [-240] [180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n    end\n    if <<(y3) < [-180]> and <(y1) < [-180]>> then\n        二つの線の交差位置 (x3) (y3) 、 (x2) (y2) と [240] [-180] 、 [-240] [-180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n        二つの線の交差位置 (x1) (y1) 、 (x2) (y2) と [240] [-180] 、 [-240] [-180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n    end\n    if <<[240] < (x1)> and <[240] < (x2)>> then\n        二つの線の交差位置 (x1) (y1) 、 (x3) (y3) と [240] [180] 、 [240] [-180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n        二つの線の交差位置 (x2) (y2) 、 (x3) (y3) と [240] [180] 、 [240] [-180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n    end\n    if <<(x1) < [-240]> and <(x2) < [-240]>> then\n        二つの線の交差位置 (x1) (y1) 、 (x3) (y3) と [-240] [180] 、 [-240] [-180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n        二つの線の交差位置 (x2) (y2) 、 (x3) (y3) と [-240] [180] 、 [-240] [-180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n    end\n    if <<[240] < (x2)> and <[240] < (x3)>> then\n        二つの線の交差位置 (x2) (y2) 、 (x1) (y1) と [240] [180] 、 [240] [-180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n        二つの線の交差位置 (x3) (y3) 、 (x1) (y1) と [240] [180] 、 [240] [-180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n    end\n    if <<(x2) < [-240]> and <(x3) < [-240]>> then\n        二つの線の交差位置 (x2) (y2) 、 (x1) (y1) と [-240] [180] 、 [-240] [-180]\n        set [x2 v] to (横2)\n        set [y2 v] to (縦2)\n        二つの線の交差位置 (x3) (y3) 、 (x1) (y1) と [-240] [180] 、 [-240] [-180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n    end\n    if <<[240] < (x3)> and <[240] < (x1)>> then\n        二つの線の交差位置 (x3) (y3) 、 (x2) (y2) と [240] [180] 、 [240] [-180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n        二つの線の交差位置 (x1) (y1) 、 (x2) (y2) と [240] [180] 、 [240] [-180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n    end\n    if <<(x3) < [-240]> and <(x1) < [-240]>> then\n        二つの線の交差位置 (x3) (y3) 、 (x2) (y2) と [-240] [180] 、 [-240] [-180]\n        set [x3 v] to (横2)\n        set [y3 v] to (縦2)\n        二つの線の交差位置 (x1) (y1) 、 (x2) (y2) と [-240] [180] 、 [-240] [-180]\n        set [x1 v] to (横2)\n        set [y1 v] to (縦2)\n    end\nend\n\nwhen I receive [リスポーン v]\nforever\n    play sound [魔王魂 音楽 v] until done\nend\n\nwhen [v v] key pressed\nif <(半透明化) = [70]> then\n    set [半透明化 v] to [0]\nelse\n    set [半透明化 v] to [70]\nend\n\npen up\nset pen size to (30)\ngo to x: (雲のｘ) y: (雲のY)\npen down\ngo to x: ((雲のｘ) + (120)) y: (雲のY)\n\npen up\nset pen size to (30)\ngo to x: (-8) y: (-34)\npen down\ngo to x: (-8) y: (-34)\n\n@image\n\nwhen flag clicked\nhide\n\nshow\ngo to x: (0) y: (0)\nset size to (100) %\n\n