3D Platformer 100%PEN !!（スマホ対応）モチモチスライム

Instructions: 100% PEN 3D Scroll Game!!  ♡☆\n緑色がゴール。\n赤色に触れたらリスタート。\n矢印キーまたはマウスorタップで操作。\n製作者の記録は\nノーマルステージでは36.266秒で、\nエキストラステージでは53.869秒です。\nエクストラステージクリア者↓\n(先着10名)\n@neko808\n@knt2011\n@Icetabetai\n@turkey07\n@waryu\n@spaoa\n@harusinn\n@tomarunjyaneezo\n@k11so100\n@nt-zzz

@Stage\n\n@PEN\n\ndefine 線を引く (ｘ) (ｙ) 、 (ｘ２) (ｙ２) 太さ (太さ)\nset [x v] to (ｘ)\nset [x2 v] to (ｘ２)\nset [y v] to (ｙ)\nset [y2 v] to (ｙ２)\nif <not <(x) = (x2)>> then\n    set [変化の割合 v] to (((y2) - (y)) / ((x2) - (x)))\n    set [切片 v] to ((y) - ((変化の割合) * (x)))\n    if <(x) > [240]> then\n        set [y v] to (((変化の割合) * (240)) + (切片))\n    end\n    if <[-240] > (x)> then\n        set [y v] to (((変化の割合) * (-240)) + (切片))\n    end\n    if <(y) > [180]> then\n        set [x v] to (((180) - (切片)) / (変化の割合))\n    end\n    if <[-180] > (y)> then\n        set [x v] to (((-180) - (切片)) / (変化の割合))\n    end\n    if <(x2) > [240]> then\n        set [y2 v] to (((変化の割合) * (240)) + (切片))\n    end\n    if <[-240] > (x2)> then\n        set [y2 v] to (((変化の割合) * (-240)) + (切片))\n    end\n    if <(y2) > [180]> then\n        set [x2 v] to (((180) - (切片)) / (変化の割合))\n    end\n    if <[-180] > (y2)> then\n        set [x2 v] to (((-180) - (切片)) / (変化の割合))\n    end\nend\nif <not <<<(x) < [-239]> and <(x2) < [-239]>> or <<[239] < (x)> and <[239] < (x2)>>>> then\n    if <not <<<(y) < [-179]> and <(y2) < [-179]>> or <<[179] < (y)> and <[179] < (y2)>>>> then\n        pen up\n        go to x: (x) y: (y)\n        set pen size to (太さ)\n        pen down\n        go to x: (x2) y: (y2)\n    end\nend\n\ndefine 裏面なしの線を引く (ｘ) (ｙ) (ｚ) 、 (ｘ２) (ｙ２) (z2) 太さ (太さ) モード (0～4)\n二次元化 (ｘ) (ｙ) (ｚ) 、 (ｘ２) (ｙ２) (z2) 線を引く [0] 太さ (太さ)\nif <<<(x) < (x2)> and <not <(0～4) = [3]>>> and <not <(0～4) = [4]>>> then\n    if <(0～4) = [1]> then\n        if <(ｙ) < ((カメラ歪みy) + (((ｙ) - (カメラ歪みy)) * (((視力) - (ｚ)) / (視力))))> then\n            線を引く (x) (y) 、 (x2) (y2) 太さ (太さ)\n        end\n    end\n    if <(0～4) = [2]> then\n        if <((カメラ歪みy) + (((ｙ) - (カメラ歪みy)) * (((視力) - (ｚ)) / (視力)))) < (ｙ)> then\n            線を引く (x) (y) 、 (x2) (y2) 太さ (太さ)\n        end\n    end\n    if <(0～4) = [0]> then\n        線を引く (x) (y) 、 (x2) (y2) 太さ (太さ)\n    end\nend\nif <(0～4) = [3]> then\n    if <(ｙ) < (y)> then\n        線を引く (x) (y) 、 (x2) (y2) 太さ (太さ)\n    end\nend\nif <(0～4) = [4]> then\n    if <(y) < (ｙ)> then\n        線を引く (x) (y) 、 (x2) (y2) 太さ (太さ)\n    end\nend\n\ndefine 壁 (縦) ✖ (横) を (ｘ) 、 (ｙ) 、に作る (色) 色\nif <<[400] > ([abs v] of (ｘ) )> or <[400] > ([abs v] of ((ｘ) + (横)) )>> then\n    if <(色) = [1]> then\n        set pen color to (#390be6)\n        set pen (color v) to (115)\n        set pen (brightness v) to (100)\n        set pen (saturation v) to (40)\n    end\n    if <(色) = [2]> then\n        set pen color to (#ff8c00)\n        set pen (saturation v) to (40)\n    end\n    if <(色) = [3]> then\n        set pen color to (#5ed200)\n        set pen (saturation v) to (40)\n        set pen (brightness v) to (100)\n    end\n    if <(色) = [4]> then\n        set pen color to (#e60909)\n        set pen (saturation v) to (40)\n        set pen (brightness v) to (100)\n    end\n    if <(色) = [5]> then\n        set pen color to (#e609ab)\n        set pen (saturation v) to (40)\n        set pen (brightness v) to (100)\n    end\n    add (色) to [色 v]\n    add (色) to [色 v]\n    add (色) to [色 v]\n    add (色) to [色 v]\n    add ((ｘ) - ((太さ) / (2))) to [x v]\n    add ((ｙ) - ((太さ) / (2))) to [y v]\n    add (((ｘ) + (横)) + ((太さ) / (2))) to [x2 v]\n    add ((ｙ) - ((太さ) / (2))) to [y2 v]\n    add (((ｘ) + (横)) + ((太さ) / (2))) to [x v]\n    add (((ｙ) + (縦)) + ((太さ) / (2))) to [y v]\n    add (((ｘ) + (横)) + ((太さ) / (2))) to [x2 v]\n    add ((ｙ) - ((太さ) / (2))) to [y2 v]\n    add ((ｘ) - ((太さ) / (2))) to [x v]\n    add (((ｙ) + (縦)) + ((太さ) / (2))) to [y v]\n    add (((ｘ) + (横)) + ((太さ) / (2))) to [x2 v]\n    add (((ｙ) + (縦)) + ((太さ) / (2))) to [y2 v]\n    add ((ｘ) - ((太さ) / (2))) to [x v]\n    add (((ｙ) + (縦)) + ((太さ) / (2))) to [y v]\n    add ((ｘ) - ((太さ) / (2))) to [x2 v]\n    add ((ｙ) - ((太さ) / (2))) to [y2 v]\n    set [塗りつぶし用変数 v] to [0]\n    repeat ([abs v] of ([floor v] of (((ｙ) - ((カメラ歪みy) + (((ｙ) - (カメラ歪みy)) * (((視力) - (100)) / (視力))))) / (太さ)) ) )\n        change [塗りつぶし用変数 v] by (太さ)\n        二次元化 (ｘ) (ｙ) [100] 、 [] [] [100] 線を引く [0] 太さ []\n        set [変化の割合 v] to (((ｙ) - (y)) / ((ｘ) - (x)))\n        set [切片 v] to ((y) - ((変化の割合) * (x)))\n        二次元化 ((ｘ) + (横)) (ｙ) [100] 、 [] [] [] 線を引く [] 太さ []\n        set [変化の割合２ v] to (((ｙ) - (y)) / (((ｘ) + (横)) - (x)))\n        set [切片２ v] to ((y) - ((変化の割合２) * (x)))\n        裏面なしの線を引く ((((ｙ) - (塗りつぶし用変数)) - (切片)) / (変化の割合)) ((ｙ) - (塗りつぶし用変数)) [0.01] 、 ((((ｙ) - (塗りつぶし用変数)) - (切片２)) / (変化の割合２)) ((ｙ) - (塗りつぶし用変数)) [0.01] 太さ (太さ) モード [2]\n    end\n    set [塗りつぶし用変数 v] to [0]\n    repeat ([abs v] of ([floor v] of ((((ｙ) + (縦)) - ((カメラ歪みy) + ((((ｙ) + (縦)) - (カメラ歪みy)) * (((視力) - (100)) / (視力))))) / (太さ)) ) )\n        二次元化 (ｘ) ((ｙ) + (縦)) [100] 、 [] [] [100] 線を引く [0] 太さ []\n        set [変化の割合 v] to ((((ｙ) + (縦)) - (y)) / ((ｘ) - (x)))\n        set [切片 v] to ((y) - ((変化の割合) * (x)))\n        二次元化 ((ｘ) + (横)) ((ｙ) + (縦)) [100] 、 [] [] [] 線を引く [] 太さ []\n        set [変化の割合２ v] to ((((ｙ) + (縦)) - (y)) / (((ｘ) + (横)) - (x)))\n        set [切片２ v] to ((y) - ((変化の割合２) * (x)))\n        裏面なしの線を引く (((((ｙ) + (縦)) - (塗りつぶし用変数)) - (切片)) / (変化の割合)) (((ｙ) + (縦)) - (塗りつぶし用変数)) [0.001] 、 (((((ｙ) + (縦)) - (塗りつぶし用変数)) - (切片２)) / (変化の割合２)) (((ｙ) + (縦)) - (塗りつぶし用変数)) [0.001] 太さ (太さ) モード [1]\n        change [塗りつぶし用変数 v] by ((-1) * (太さ))\n    end\n    set [塗りつぶし用変数 v] to [0]\n    repeat (([floor v] of ((縦) / (太さ)) ) + (1))\n        裏面なしの線を引く (ｘ) (((ｙ) + (縦)) - (塗りつぶし用変数)) [100] 、 (ｘ) (((ｙ) + (縦)) - (塗りつぶし用変数)) [0] 太さ (太さ) モード [0]\n        change [塗りつぶし用変数 v] by (太さ)\n    end\n    set [塗りつぶし用変数 v] to [0]\n    裏面なしの線を引く (ｘ) (ｙ) [100] 、 (ｘ) (ｙ) [0] 太さ (太さ) モード [0]\n    repeat (([floor v] of ((縦) / (太さ)) ) + (1))\n        裏面なしの線を引く ((ｘ) + (横)) (((ｙ) + (縦)) - (塗りつぶし用変数)) [0] 、 ((ｘ) + (横)) (((ｙ) + (縦)) - (塗りつぶし用変数)) [100] 太さ (太さ) モード [0]\n        change [塗りつぶし用変数 v] by (太さ)\n    end\n    裏面なしの線を引く ((ｘ) + (横)) (ｙ) [100] 、 ((ｘ) + (横)) (ｙ) [0] 太さ (太さ) モード [0]\n    set [塗りつぶし用変数 v] to [0]\n    repeat (([floor v] of ((縦) / (太さ)) ) + (1))\n        裏面なしの線を引く (ｘ) (((ｙ) + (縦)) - (塗りつぶし用変数)) [0] 、 ((ｘ) + (横)) (((ｙ) + (縦)) - (塗りつぶし用変数)) [0] 太さ (太さ) モード [0]\n        change [塗りつぶし用変数 v] by (太さ)\n    end\n    裏面なしの線を引く (ｘ) (ｙ) [0] 、 ((ｘ) + (横)) (ｙ) [0] 太さ (太さ) モード [0]\n    change pen (saturation v) by (70)\n    裏面なしの線を引く (ｘ) ((ｙ) + (縦)) [100] 、 (ｘ) ((ｙ) + (縦)) [0.001] 太さ (太さ) モード [0]\n    裏面なしの線を引く (ｘ) (ｙ) [100] 、 (ｘ) (ｙ) [0.001] 太さ (太さ) モード [0]\n    裏面なしの線を引く (ｘ) (ｙ) [100] 、 (ｘ) ((ｙ) + (縦)) [99.999] 太さ (太さ) モード [0]\n    裏面なしの線を引く (ｘ) (ｙ) [100] 、 ((ｘ) + (横)) (ｙ) [100] 太さ (太さ) モード [4]\n    裏面なしの線を引く ((ｘ) + (横)) ((ｙ) + (縦)) [0.001] 、 ((ｘ) + (横)) ((ｙ) + (縦)) [100] 太さ (太さ) モード [0]\n    裏面なしの線を引く ((ｘ) + (横)) (ｙ) [0.001] 、 ((ｘ) + (横)) (ｙ) [100] 太さ (太さ) モード [0]\n    裏面なしの線を引く ((ｘ) + (横)) (ｙ) [99.999] 、 ((ｘ) + (横)) ((ｙ) + (縦)) [100] 太さ (太さ) モード [0]\n    裏面なしの線を引く ((ｘ) + (横)) (ｙ) [100] 、 (ｘ) (ｙ) [100] 太さ (太さ) モード [4]\n    裏面なしの線を引く (ｘ) ((ｙ) + (縦)) [100] 、 ((ｘ) + (横)) ((ｙ) + (縦)) [100] 太さ (太さ) モード [3]\n    二次元化 (ｘ) (ｙ) [0] 、 (ｘ) ((ｙ) + (縦)) [0] 線を引く [1] 太さ (太さ)\n    二次元化 (ｘ) (ｙ) [0] 、 ((ｘ) + (横)) (ｙ) [0] 線を引く [1] 太さ (太さ)\n    二次元化 (ｘ) ((ｙ) + (縦)) [0] 、 ((ｘ) + (横)) ((ｙ) + (縦)) [0] 線を引く [1] 太さ (太さ)\n    二次元化 ((ｘ) + (横)) (ｙ) [0] 、 ((ｘ) + (横)) ((ｙ) + (縦)) [0] 線を引く [1] 太さ (太さ)\n    裏面なしの線を引く (ｘ) (ｙ) [0.001] 、 (ｘ) (ｙ) [100] 太さ (太さ) モード [4]\n    裏面なしの線を引く (ｘ) ((ｙ) + (縦)) [0.001] 、 (ｘ) ((ｙ) + (縦)) [100] 太さ (太さ) モード [3]\n    裏面なしの線を引く ((ｘ) + (横)) (ｙ) [0.001] 、 ((ｘ) + (横)) (ｙ) [100] 太さ (太さ) モード [4]\n    裏面なしの線を引く ((ｘ) + (横)) ((ｙ) + (縦)) [0.001] 、 ((ｘ) + (横)) ((ｙ) + (縦)) [100] 太さ (太さ) モード [3]\n    change pen (saturation v) by (-70)\nend\n\ndefine 二次元化 (ｘ) (ｙ) (ｚ) 、 (ｘ２) (ｙ２) (ｚ２) 線を引く (0or1) 太さ (太さ)\nset [x v] to ((ｘ) * (((視力) - (ｚ)) / (視力)))\nset [y v] to ((カメラ歪みy) + (((ｙ) - (カメラ歪みy)) * (((視力) - (ｚ)) / (視力))))\nset [x2 v] to ((ｘ２) * (((視力) - (ｚ２)) / (視力)))\nset [y2 v] to ((カメラ歪みy) + (((ｙ２) - (カメラ歪みy)) * (((視力) - (ｚ２)) / (視力))))\nif <(((視力) - (ｚ)) / (視力)) < [0]> then\n    set [x v] to [0]\n    set [y v] to (カメラ歪みy)\nend\nif <(((視力) - (ｚ２)) / (視力)) < [0]> then\n    set [x2 v] to [0]\n    set [y2 v] to (カメラ歪みy)\nend\nif <(0or1) = [1]> then\n    線を引く (x) (y) 、 (x2) (y2) 太さ (太さ)\nend\n\ndefine 描画\nset [当たり判定 v] to [0]\ngo to x: (0) y: (0)\nerase all\nset pen color to (#390be6)\nset pen size to (999)\nset pen (color v) to (60)\nset pen (saturation v) to (82)\nset pen (brightness v) to (69)\npen down\n雲描画\nset pen color to (#390be6)\nset pen (brightness v) to (100)\nset pen (saturation v) to (40)\nset pen (color v) to (115)\ndelete all of [x v]\ndelete all of [x2 v]\ndelete all of [y v]\ndelete all of [y2 v]\ndelete all of [色 v]\nif <(ステージ) = [1]> then\n    壁 [50] ✖ [360] を ((0) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [180] を ((600) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [180] を ((600) - (カメラ横)) 、 ((180) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [180] を ((900) - (カメラ横)) 、 ((90) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [300] を ((900) - (カメラ横)) 、 ((270) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [50] を ((1300) - (カメラ横)) 、 ((350) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [200] を ((1500) - (カメラ横)) 、 ((400) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [500] を ((1850) - (カメラ横)) 、 ((500) - (カメラ縦)) 、に作る [1] 色\n    壁 [310] ✖ [50] を ((2450) - (カメラ横)) 、 ((400) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [250] を ((2200) - (カメラ横)) 、 ((350) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [300] を ((2050) - (カメラ横)) 、 ((200) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [200] を ((1900) - (カメラ横)) 、 ((350) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((2450) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((2700) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((2900) - (カメラ横)) 、 ((200) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((3100) - (カメラ横)) 、 ((300) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((3300) - (カメラ横)) 、 ((300) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((3500) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((3800) - (カメラ横)) 、 ((150) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [100] を ((4000) - (カメラ横)) 、 ((200) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [250] を ((4200) - (カメラ横)) 、 ((200) - (カメラ縦)) 、に作る [1] 色\n    壁 [50] ✖ [50] を ((4350) - (カメラ横)) 、 ((350) - (カメラ縦)) 、に作る [3] 色\nend\nif <(ステージ) = [2]> then\n    壁 [50] ✖ [360] を ((0) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [300] を ((500) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [50] を ((600) - (カメラ横)) 、 ((50) - (カメラ縦)) 、に作る [4] 色\n    壁 [50] ✖ [50] を ((900) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [150] を ((1100) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [50] を ((1150) - (カメラ横)) 、 ((250) - (カメラ縦)) 、に作る [4] 色\n    壁 [50] ✖ [100] を ((1400) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [100] を ((1600) - (カメラ横)) 、 ((200) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [100] を ((1700) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [200] を ((1900) - (カメラ横)) 、 ((100) - (カメラ縦)) 、に作る [4] 色\n    壁 [50] ✖ [200] を ((1900) - (カメラ横)) 、 ((-100) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [200] を ((2200) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [200] を ((2600) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [100] を ((2600) - (カメラ横)) 、 ((150) - (カメラ縦)) 、に作る [4] 色\n    壁 [50] ✖ [150] を ((3050) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [150] を ((3050) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [800] を ((3400) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [2] 色\n    壁 [50] ✖ [50] を ((4050) - (カメラ横)) 、 ((150) - (カメラ縦)) 、に作る [3] 色\nend\nif <(ステージ) = [3]> then\n    壁 [50] ✖ [360] を ((0) - (カメラ横)) 、 ((0) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [300] を ((500) - (カメラ横)) 、 (((225) - (カメラ縦)) + ((-100) * (動くブロック))) 、に作る [5] 色\n    壁 [50] ✖ [300] を ((1000) - (カメラ横)) 、 (((150) - (カメラ縦)) + ((100) * (動くブロック))) 、に作る [5] 色\n    壁 [100] ✖ [50] を ((1050) - (カメラ横)) 、 ((300) - (カメラ縦)) 、に作る [4] 色\n    壁 [50] ✖ [100] を (((1300) - (カメラ横)) + ((150) * (動くブロック))) 、 ((300) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [100] を (((1700) - (カメラ横)) + ((-150) * (動くブロック))) 、 ((300) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [300] を ((1900) - (カメラ横)) 、 ((300) - (カメラ縦)) 、に作る [5] 色\n    壁 [100] ✖ [50] を ((2000) - (カメラ横)) 、 (((350) - (カメラ縦)) + ((200) * (動くブロック))) 、に作る [4] 色\n    壁 [100] ✖ [50] を ((2000) - (カメラ横)) 、 (((350) - (カメラ縦)) + ((200) * (動くブロック))) 、に作る [4] 色\n    壁 [50] ✖ [100] を (((2200) - (カメラ横)) + ((200) * (動くブロック))) 、 (((350) - (カメラ縦)) + ((100) * (動くブロック))) 、に作る [5] 色\n    壁 [50] ✖ [100] を ((2600) - (カメラ横)) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [100] を ((2600) - (カメラ横)) 、 (((550) - (カメラ縦)) + ((200) * (動くブロック))) 、に作る [4] 色\n    壁 [50] ✖ [100] を (((2800) - (カメラ横)) + ((100) * (動くブロック))) 、 ((550) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [100] を ((3100) - (カメラ横)) 、 (((550) - (カメラ縦)) + ((-1200) * (動くブロック))) 、に作る [5] 色\n    壁 [50] ✖ [100] を ((3300) - (カメラ横)) 、 (((950) - (カメラ縦)) + ((-500) * (動くブロック))) 、に作る [5] 色\n    壁 [50] ✖ [100] を (((3500) - (カメラ横)) + ((100) * (動くブロック))) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [200] を ((3800) - (カメラ横)) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [50] を (((3800) - (カメラ横)) + ((150) * (動くブロック))) 、 ((550) - (カメラ縦)) 、に作る [4] 色\n    壁 [50] ✖ [100] を ((4100) - (カメラ横)) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [250] を ((4100) - (カメラ横)) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 ((150) + ((-100) * (動くブロック))) ✖ [50] を ((4200) - (カメラ横)) 、 (((550) - (カメラ縦)) + ((100) * (動くブロック))) 、に作る [4] 色\n    壁 [50] ✖ ((250) + ((-200) * (動くブロック))) を (((4500) - (カメラ横)) + ((100) * (動くブロック))) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ ((250) + ((-200) * (動くブロック))) を (((4900) - (カメラ横)) + ((100) * (動くブロック))) 、 ((500) - (カメラ縦)) 、に作る [5] 色\n    壁 [50] ✖ [50] を ((4800) - (カメラ横)) 、 (((550) - (カメラ縦)) + ((1500) * (動くブロック))) 、に作る [4] 色\n    壁 [50] ✖ [50] を (((5350) - (カメラ横)) + ((-200) * (動くブロック))) 、 (((200) - (カメラ縦)) + ((700) * (動くブロック))) 、に作る [3] 色\nend\n\ndefine 移動\nset [ジャンプする v] to [0]\nset [移動する v] to [0]\nif <mouse down?> then\n    if <[10] < (mouse y)> then\n        set [ジャンプする v] to [1]\n    end\n    if <[20] < ([abs v] of (mouse x) )> then\n        if <[0] < (mouse x)> then\n            set [移動する v] to [1]\n        else\n            set [移動する v] to [2]\n        end\n    end\nend\nset [当たり判定 v] to [0]\n当たり判定\nif <(当たり判定) = [1]> then\n    change [プレーヤー縦 v] by (20)\n    set [当たり判定 v] to [0]\n    当たり判定\n    if <(当たり判定) = [0]> then\n        change [プレーヤー縦 v] by (-20)\n        set [当たり判定 v] to [0]\n        当たり判定\n        repeat until <(当たり判定) = [0]>\n            change [プレーヤー縦 v] by (1)\n            change [カメラ縦 v] by (1)\n            set [当たり判定 v] to [0]\n            当たり判定\n        end\n    else\n        change [プレーヤー縦 v] by (-20)\n        repeat until <(当たり判定) = [0]>\n            change [プレーヤー横 v] by ((-1) * (進んでいる方向))\n            set [当たり判定 v] to [0]\n            当たり判定\n        end\n        change [カメラ横 v] by (プレーヤー横)\n        change [カメラ縦 v] by (プレーヤー縦)\n        set [歩行加速 v] to [0]\n    end\nend\nchange [プレーヤー縦 v] by (-3)\nset [当たり判定 v] to [0]\n当たり判定\nif <(当たり判定) = [1]> then\n    change [プレーヤー縦 v] by (3)\n    change [重力加速 v] by ((-2) * ((重力加速) / ([abs v] of (重力加速) )))\n    change [重力加速 v] by ((-2) * ((重力加速) / ([abs v] of (重力加速) )))\n    change [重力加速 v] by ((-2) * ((重力加速) / ([abs v] of (重力加速) )))\n    if <<key (up arrow v) pressed?> or <(ジャンプする) = [1]>> then\n        set [重力加速 v] to [20]\n        change [プレーヤー縦 v] by (重力加速)\n        set [当たり判定 v] to [0]\n        当たり判定\n        if <(当たり判定) = [0]> then\n            start sound [Jump2 v]\n            change [カメラ縦 v] by (プレーヤー縦)\n        else\n            set [重力加速 v] to [0]\n        end\n    end\nelse\n    change [プレーヤー縦 v] by (3)\n    if <[-16] < (重力加速)> then\n        change [重力加速 v] by (-2)\n    end\n    change [プレーヤー縦 v] by (重力加速)\n    set [当たり判定 v] to [0]\n    当たり判定\n    if <(当たり判定) = [1]> then\n        repeat until <(当たり判定) = [0]>\n            set [当たり判定 v] to [0]\n            当たり判定\n            change [プレーヤー縦 v] by ((-1) * (ジャンプした))\n        end\n        change [重力加速 v] by ((-2) * ((重力加速) / ([abs v] of (重力加速) )))\n        change [重力加速 v] by ((-2) * ((重力加速) / ([abs v] of (重力加速) )))\n        change [重力加速 v] by ((-2) * ((重力加速) / ([abs v] of (重力加速) )))\n    end\n    change [カメラ縦 v] by (プレーヤー縦)\nend\nif <[0] < (重力加速)> then\n    set [ジャンプした v] to [1]\nend\nif <(重力加速) < [0]> then\n    set [ジャンプした v] to [-1]\nend\nset [プレーヤー縦 v] to [0]\nset [当たり判定 v] to [0]\n当たり判定\nif <<key (right arrow v) pressed?> or <(移動する) = [1]>> then\n    set [向き v] to [1]\n    if <(歩行加速) < [12]> then\n        change [歩行加速 v] by (1)\n    end\nend\nif <<key (left arrow v) pressed?> or <(移動する) = [2]>> then\n    set [向き v] to [-1]\n    if <[-12] < (歩行加速)> then\n        change [歩行加速 v] by (-1)\n    end\nend\nif <[0] < (歩行加速)> then\n    set [進んでいる方向 v] to [1]\nend\nif <(歩行加速) < [0]> then\n    set [進んでいる方向 v] to [-1]\nend\nif <not <<<key (right arrow v) pressed?> or <(移動する) = [1]>> or <<key (left arrow v) pressed?> or <(移動する) = [2]>>>> then\n    change [歩行加速 v] by ((-1) * (([abs v] of (歩行加速) ) / (歩行加速)))\nend\nchange [カメラ横 v] by (歩行加速)\nset [当たり判定 v] to [0]\nset [プレーヤー横 v] to [0]\nset [プレーヤー縦 v] to [0]\nset [プレーヤーの圧縮 v] to ((((1.5) - ((重力加速) / (15))) * (50)) + (25))\nif <(カメラ縦) < [-200]> then\n    broadcast (ゲームオーバー v)\nend\n\ndefine 当たり判定 (ｘ) (y) 、 (ｘ２) (ｙ２)\nset [変化の割合 v] to (((y) - (ｙ２)) / ((ｘ) - (ｘ２)))\nset [切片 v] to ((y) - ((変化の割合) * (ｘ)))\nset [当たり判定用変数 v] to [0]\nrepeat (length of [x v])\n    change [当たり判定用変数 v] by (1)\n    if <(item (当たり判定用変数) of [x v]) = (item (当たり判定用変数) of [x2 v])> then\n        if <not <(ｘ) = (ｘ２)>> then\n            set [y v] to (((変化の割合) * (item (当たり判定用変数) of [x v])) + (切片))\n            set [x v] to (item (当たり判定用変数) of [x v])\n            if <(y) < ((((item (当たり判定用変数) of [y2 v]) + (item (当たり判定用変数) of [y v])) / (2)) + (([abs v] of ((item (当たり判定用変数) of [y2 v]) - (item (当たり判定用変数) of [y v])) ) / (2)))> then\n                if <(y) > ((((item (当たり判定用変数) of [y2 v]) + (item (当たり判定用変数) of [y v])) / (2)) - (([abs v] of ((item (当たり判定用変数) of [y2 v]) - (item (当たり判定用変数) of [y v])) ) / (2)))> then\n                    if <(x) > ((((ｘ２) + (ｘ)) / (2)) - (([abs v] of ((ｘ２) - (ｘ)) ) / (2)))> then\n                        if <(x) < ((((ｘ２) + (ｘ)) / (2)) + (([abs v] of ((ｘ２) - (ｘ)) ) / (2)))> then\n                            set [当たり判定 v] to [1]\n                            if <(item (当たり判定用変数) of [色 v]) = [4]> then\n                                set [リスポーンした時間 v] to (timer)\n                                broadcast (ゲームオーバー v)\n                            end\n                            if <(item (当たり判定用変数) of [色 v]) = [3]> then\n                                broadcast (次のステージ v)\n                                stop [this script v]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    else\n        set [変化の割合２ v] to (((item (当たり判定用変数) of [y v]) - (item (当たり判定用変数) of [y2 v])) / ((item (当たり判定用変数) of [x v]) - (item (当たり判定用変数) of [x2 v])))\n        set [切片２ v] to ((item (当たり判定用変数) of [y v]) - ((変化の割合２) * (item (当たり判定用変数) of [x v])))\n        set [x v] to (((切片２) - (切片)) / ((変化の割合) - (変化の割合２)))\n        set [y v] to (((変化の割合) * (x)) + (切片))\n        if <(y) < ((((y) + (ｙ２)) / (2)) + (([abs v] of ((y) - (ｙ２)) ) / (2)))> then\n            if <(y) > ((((y) + (ｙ２)) / (2)) - (([abs v] of ((y) - (ｙ２)) ) / (2)))> then\n                if <(x) < ((((item (当たり判定用変数) of [x v]) + (item (当たり判定用変数) of [x2 v])) / (2)) + (([abs v] of ((item (当たり判定用変数) of [x v]) - (item (当たり判定用変数) of [x2 v])) ) / (2)))> then\n                    if <(x) > ((((item (当たり判定用変数) of [x v]) + (item (当たり判定用変数) of [x2 v])) / (2)) - (([abs v] of ((item (当たり判定用変数) of [x v]) - (item (当たり判定用変数) of [x2 v])) ) / (2)))> then\n                        set [当たり判定 v] to [1]\n                        if <(item (当たり判定用変数) of [色 v]) = [4]> then\n                            set [リスポーンした時間 v] to (timer)\n                            broadcast (ゲームオーバー v)\n                        end\n                        if <(item (当たり判定用変数) of [色 v]) = [3]> then\n                            broadcast (次のステージ v)\n                            stop [this script v]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine プレーヤー\npen up\ngo to x: (0) y: (0)\nset pen color to (#ffffff)\nset pen size to (2)\npoint in direction (0)\npen up\nrepeat (180)\n    move (20) steps\n    set y to ((y position) * ((プレーヤーの圧縮) / (100)))\n    pen down\n    go to x: (0) y: (0)\n    turn right (2) degrees\n    pen up\nend\npen up\nset pen color to (#00ffff)\npoint in direction (0)\nrepeat (180)\n    move (15) steps\n    set y to ((y position) * ((プレーヤーの圧縮) / (100)))\n    pen down\n    go to x: (0) y: (0)\n    turn right (2) degrees\n    pen up\nend\ngo to x: (0) y: (0)\npoint in direction (90)\nmove ((8) * (向き)) steps\nchange y by (4)\nset y to ((y position) * ((プレーヤーの圧縮) / (100)))\nset pen color to (#ffffff)\nset pen size to (14)\npen down\npen up\nset pen color to (#000000)\nset pen size to (8)\npen down\npen up\ngo to x: (0) y: (0)\npoint in direction (90)\nmove ((14) * (向き)) steps\nchange y by (-6)\nset y to ((y position) * ((プレーヤーの圧縮) / (100)))\n\ndefine 当たり判定\n当たり判定 ((プレーヤー横) - (20)) (プレーヤー縦) 、 (プレーヤー横) ((プレーヤー縦) - (20))\n当たり判定 ((プレーヤー横) + (20)) (プレーヤー縦) 、 (プレーヤー横) ((プレーヤー縦) - (20))\n当たり判定 ((プレーヤー横) - (20)) (プレーヤー縦) 、 (プレーヤー横) ((プレーヤー縦) + (20))\n当たり判定 ((プレーヤー横) + (20)) (プレーヤー縦) 、 (プレーヤー横) ((プレーヤー縦) + (20))\n\ndefine 雲描画\nchange [雲のｘ v] by (-2)\nset pen color to (#b9cae4)\n線を引く (雲のｘ) (雲のY) 、 ((雲のｘ) + (120)) (雲のY) 太さ [30]\n線を引く ((雲のｘ) + (20)) ((雲のY) + (20)) 、 ((雲のｘ) + (100)) ((雲のY) + (20)) 太さ [30]\nif <(雲のｘ) < [-400]> then\n    set [雲のｘ v] to [300]\n    set [雲のy v] to (pick random (50) to (140))\nend\nchange [雲２ｘ v] by (-2)\nset pen color to (#b9cae4)\n線を引く (雲２ｘ) (雲２ｙ) 、 ((雲２ｘ) + (120)) (雲２ｙ) 太さ [30]\n線を引く ((雲２ｘ) + (20)) ((雲２ｙ) + (20)) 、 ((雲２ｘ) + (100)) ((雲２ｙ) + (20)) 太さ [30]\nif <(雲２ｘ) < [-400]> then\n    set [雲２ｘ v] to [300]\n    set [雲２ｙ v] to (pick random (50) to (140))\nend\n\ndefine 枠\npen up\nset pen color to (#ffffff)\nset pen size to (16)\ngo to x: (-240) y: (-180)\npoint in direction (90)\npen down\nrepeat (2)\n    move (480) steps\n    turn left (90) degrees\n    move (360) steps\n    turn left (90) degrees\nend\npen up\n\nwhen I receive [ゲームオーバー v]\nset [リスポーンした時間 v] to (timer)\nset [ゲームオーバーｘ v] to ((カメラ横) - (100))\nset [ゲームオーバーｙ v] to ((カメラ縦) - (100))\nrepeat until <<(([abs v] of (カメラ縦) ) - (200)) < [10]> and <(([abs v] of (カメラ横) ) - (200)) < [10]>>\n    set [重力加速 v] to [0]\n    set [歩行加速 v] to [0]\n    描画\n    枠\n    if <[300] < (round ((ゲームオーバーｘ) * (0.1)))> then\n        set [ゲームオーバーｘ v] to ((ゲームオーバーｘ) - (300))\n        set [ゲームオーバーｙ v] to ((ゲームオーバーｙ) * (0.99))\n    else\n        set [ゲームオーバーｘ v] to ((ゲームオーバーｘ) * (0.9))\n        set [ゲームオーバーｙ v] to ((ゲームオーバーｙ) * (0.9))\n    end\n    set [カメラ横 v] to ((ゲームオーバーｘ) + (200))\n    set [カメラ縦 v] to ((ゲームオーバーｙ) + (200))\nend\nset [カメラ横 v] to [200]\nset [カメラ縦 v] to [200]\n\ndefine 繰り返す\n描画\n移動\nプレーヤー\n枠\n\nwhen flag clicked\nreset timer\nstop [other scripts in sprite v]\nset [ステージ v] to [1]\nbroadcast (BGM v)\nbroadcast (スタート v)\nset [動くブロック v] to [0]\n\nwhen I receive [bgm v]\nplay sound [魔王魂 音楽 v] until done\nbroadcast (BGM v)\n\nwhen I receive [次のステージ v]\nif <[1] < (timer)> then\n    stop [other scripts in sprite v]\n    if <(ステージ) = [2]> then\n        set [リスポーンした時間 v] to (timer)\n        set [☁ user clear time v] to (timer)\n        プレーヤー\n        play sound [Win v] until done\n        pen up\n        go to x: (0) y: (0)\n        set [カメラ横 v] to [200]\n        set [カメラ縦 v] to [200]\n        say (join [Clear time ] ((round ((☁ User Clear time) * (100))) / (100))) for (1) seconds\n        say [Next stage !!] for (1) seconds\n        pen up\n        go to x: (0) y: (0)\n        set pen color to (#000000)\n        set pen (transparency v) to (100)\n        repeat (40)\n            set pen size to (999)\n            change pen (transparency v) by (-1)\n            pen down\n        end\n        change [ステージ v] by (1)\n        set [プレーヤー縦 v] to [200]\n        set [プレーヤー横 v] to [200]\n        broadcast (スタート v)\n        broadcast (BGM v)\n    else\n        if <(ステージ) = [3]> then\n            set [☁ extra stage clear time v] to ((timer) - (リスポーンした時間))\n            プレーヤー\n            play sound [Win v] until done\n            say [GOAL !!] for (4) seconds\n            go to x: (0) y: (0)\n            forever\n                set [カメラ横 v] to [200]\n                set [カメラ縦 v] to [200]\n                say (join [Extra stage Clear time ] (☁ Extra stage Clear time)) for (4) seconds\n                say [♡Thank you for playing !☆] for (4) seconds\n                say [♡プレイしてくれてありがとう！☆] for (4) seconds\n            end\n        else\n            set [リスポーンした時間 v] to (timer)\n            stop [other scripts in sprite v]\n            play sound [Win v] until done\n            pen up\n            go to x: (0) y: (0)\n            set pen color to (#000000)\n            set pen (transparency v) to (100)\n            repeat (40)\n                set pen size to (999)\n                change pen (transparency v) by (-1)\n                pen down\n            end\n            change [ステージ v] by (1)\n            set [プレーヤー縦 v] to [200]\n            set [プレーヤー横 v] to [200]\n            broadcast (スタート v)\n            broadcast (BGM v)\n        end\n    end\nend\n\nwhen I receive [スタート v]\nset volume to (50) %\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))\nset [視力 v] to [320]\nset pen (transparency v) to (0)\nset [太さ v] to [16]\nset [歩行加速 v] to [0]\nset [向き v] to [1]\nset [進んでいる方向 v] to [1]\nset [カメラ縦 v] to [200]\nset [カメラ横 v] to [200]\nset [重力加速 v] to [0]\nset [歩行加速 v] to [0]\nforever\n    繰り返す\nend\n\nwhen I receive [スタート v]\nset [ゲームオーバー v] to [0]\nforever\n    repeat until <[0.999] < (動くブロック)>\n        set [動くブロック用変数 v] to ((動くブロック) - (1))\n        set [動くブロック v] to (((動くブロック用変数) * (0.9)) + (1))\n    end\n    repeat until <([abs v] of (動くブロック) ) < [0.001]>\n        set [動くブロック v] to ((動くブロック) * (0.9))\n    end\nend\n\nwhen I receive [ゲームオーバー v]\nif <(ゲームオーバー) = [0]> then\n    set [ゲームオーバー v] to [1]\n    start sound [Oops2 v]\nend\nwait (1) seconds\nset [ゲームオーバー v] to [0]\n\n@スプライト1\n\nshow\ngo to x: (0) y: (0)\n\nwhen flag clicked\nhide\n\n