simple || 100%pen platformer

Instructions: ↓ 重い、または画質を良くしたい方はコチラ ↓\nhttps://turbowarp.org/592243624?hqpen&interpolate\n\n矢印・WASDキーまたはタップで操作。\n緑:地面\n赤:触れたら最初から\n青:ジャンプ台\n黄:ゴール\n\n今回は短めです。\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nめんどくなったとは言えない...。

@Stage\n\n@スプライト1\n\ndefine ステージ生成 x (x) y (y) x長さ (x長さ) y長さ (y長さ) 種類 (種類)\nadd (x) to [地面 v]\nadd (y) to [地面 v]\nadd (x長さ) to [地面 v]\nadd (y長さ) to [地面 v]\nadd (種類) to [地面 v]\n\ndefine プレイヤー初期化\nset [プレイヤーx座標 v] to [0]\nset [プレイヤーy座標 v] to [0]\nset [プレイヤーx速度 v] to [0]\nset [プレイヤーy速度 v] to [0]\nset [カメラx座標 v] to [0]\nset [カメラy座標 v] to [0]\n\ndefine 当たり判定 (x1) (y1) (x2) (y2) (x) (y)\nif <([abs v] of ((((x1) + (x2)) / (2)) - (x)) ) < (([abs v] of ((x1) - (((x1) + (x2)) / (2))) ) + (22))> then\n    if <([abs v] of ((((y1) + (y2)) / (2)) - (y)) ) < (([abs v] of ((y1) - (((y1) + (y2)) / (2))) ) + (22))> then\n        add (item (i) of [地面 v]) to [当たり判定 v]\n    end\nend\n\ndefine 判定\ndelete all of [当たり判定 v]\nset [i v] to [0]\nrepeat ((length of [地面 v]) / (5))\n    change [i v] by (5)\n    当たり判定 ((item ((i) - (4)) of [地面 v]) + ((item ((i) - (2)) of [地面 v]) / (2))) ((item ((i) - (3)) of [地面 v]) + ((item ((i) - (1)) of [地面 v]) / (2))) ((item ((i) - (4)) of [地面 v]) - ((item ((i) - (2)) of [地面 v]) / (2))) ((item ((i) - (3)) of [地面 v]) - ((item ((i) - (1)) of [地面 v]) / (2))) ((カメラx座標) + (プレイヤーx座標)) ((カメラy座標) + (プレイヤーy座標))\nend\n\ndefine 描画用 x (x)\nset x to ((x) - (カメラx座標))\n\ndefine 描画用 y (y)\nset y to ((y) - (カメラy座標))\n\ndefine 全体の処理\nerase all\nchange [プレイヤーx座標 v] by (() - (round (((プレイヤーx座標) + (プレイヤーx速度)) / (13))))\nchange [プレイヤーy座標 v] by (() - (round ((((プレイヤーy座標) + (プレイヤーy速度)) + (22)) / (13))))\nchange [カメラx座標 v] by (round (((プレイヤーx座標) + (プレイヤーx速度)) / (13)))\nchange [カメラy座標 v] by (round ((((プレイヤーy座標) + (プレイヤーy速度)) + (22)) / (13)))\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<(mouse x) > [0]> and <mouse down?>>>> then\n    change [プレイヤーx速度 v] by (1)\n    set [向き v] to [R]\nend\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<(mouse x) < [0]> and <mouse down?>>>> then\n    change [プレイヤーx速度 v] by (-1)\n    set [向き v] to [L]\nend\nset [プレイヤーx速度 v] to ((プレイヤーx速度) * (0.9))\nchange [プレイヤーx座標 v] by (プレイヤーx速度)\nrepeat (6)\n    判定\n    if <[当たり判定 v] contains [1]?> then\n        change [プレイヤーy座標 v] by (1)\n    end\nend\n判定\nif <[当たり判定 v] contains [1]?> then\n    change [プレイヤーx座標 v] by (() - (プレイヤーx速度))\n    change [プレイヤーy座標 v] by (-6)\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<(mouse y) > [50]> and <mouse down?>>>> then\n        change [プレイヤーx速度 v] by ((12) - ((24) * <(プレイヤーx速度) = ([abs v] of (プレイヤーx速度) )>))\n        set [プレイヤーy速度 v] to [12]\n    else\n        set [プレイヤーx速度 v] to [0]\n    end\nend\nchange [プレイヤーy座標 v] by (-1)\n判定\nif <[当たり判定 v] contains [1]?> then\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<(mouse y) > [50]> and <mouse down?>>>> then\n        set [プレイヤーy速度 v] to [15]\n    end\nend\nchange [プレイヤーy座標 v] by (1)\nchange [プレイヤーy速度 v] by (-1)\nchange [プレイヤーy座標 v] by (プレイヤーy速度)\n判定\nif <[当たり判定 v] contains [1]?> then\n    change [プレイヤーy座標 v] by (() - (プレイヤーy速度))\n    set [プレイヤーy速度 v] to [0]\nend\n判定\nif <<(プレイヤーy速度) < [-35]> or <[当たり判定 v] contains [2]?>> then\n    プレイヤー初期化\nend\nif <[当たり判定 v] contains [3]?> then\n    set [プレイヤーy速度 v] to [25]\nend\n判定\nif <[当たり判定 v] contains [4]?> then\n    set [ゴール v] to [1]\nend\ngo to x: (0) y: (0)\nset pen color to (#000000)\nset pen size to (600)\npen down\npen up\nset [i v] to [0]\nrepeat ((length of [地面 v]) / (5))\n    change [i v] by (5)\n    if <(item (i) of [地面 v]) = [1]> then\n        set pen color to (#10ff00)\n    else\n        if <(item (i) of [地面 v]) = [2]> then\n            set pen color to (#ff0000)\n        else\n            if <(item (i) of [地面 v]) = [3]> then\n                set pen color to (#0021ff)\n            else\n                set pen color to (#eeff00)\n            end\n        end\n    end\n    set pen size to (10)\n    描画用 x ((item ((i) - (4)) of [地面 v]) - ((item ((i) - (2)) of [地面 v]) / (2)))\n    描画用 y ((item ((i) - (3)) of [地面 v]) + ((item ((i) - (1)) of [地面 v]) / (2)))\n    pen down\n    描画用 y ((item ((i) - (3)) of [地面 v]) - ((item ((i) - (1)) of [地面 v]) / (2)))\n    描画用 x ((item ((i) - (4)) of [地面 v]) + ((item ((i) - (2)) of [地面 v]) / (2)))\n    描画用 y ((item ((i) - (3)) of [地面 v]) + ((item ((i) - (1)) of [地面 v]) / (2)))\n    描画用 x ((item ((i) - (4)) of [地面 v]) - ((item ((i) - (2)) of [地面 v]) / (2)))\n    pen up\nend\nset pen color to (#ffb600)\nset pen size to (8)\ngo to x: ((プレイヤーx座標) - (13)) y: ((プレイヤーy座標) + (13))\npen down\nset y to ((プレイヤーy座標) - (13))\nset x to ((プレイヤーx座標) + (13))\nset y to ((プレイヤーy座標) + (13))\nset x to ((プレイヤーx座標) - (13))\npen up\nset pen color to (#ffffff)\nset pen size to (26)\ngo to x: (プレイヤーx座標) y: (プレイヤーy座標)\npen down\npen up\nset pen color to (#000000)\nset pen size to (16)\npen down\npen up\nset pen color to (#ffffff)\nset pen size to (5)\ngo to x: ((プレイヤーx座標) + ((2) * (<(向き) = [R]> - <(向き) = [L]>))) y: (プレイヤーy座標)\npen down\npen up\nif <(ゴール) = [1]> then\n    set [textsize_x v] to [25]\n    set [textsize_y v] to [30]\n    set pen color to (#ff8800)\n    set pen size to (4)\n    文字全体 [thank you] [140] [30]\n    文字全体 [for playing] [180] [-30]\n    stop [all v]\nend\n\nwhen flag clicked\nset size to ((1) / (0)) %\nset [向き v] to [R]\nset [ゴール v] to [0]\ndelete all of [地面 v]\nステージ生成 x [200] y [-100] x長さ [500] y長さ [50] 種類 [1]\nステージ生成 x [100] y [-20] x長さ [40] y長さ [100] 種類 [1]\nステージ生成 x [300] y [-40] x長さ [40] y長さ [50] 種類 [2]\nステージ生成 x [480] y [-100] x長さ [50] y長さ [50] 種類 [3]\nステージ生成 x [900] y [-100] x長さ [100] y長さ [50] 種類 [1]\nステージ生成 x [1000] y [-100] x長さ [100] y長さ [50] 種類 [3]\nステージ生成 x [1100] y [-100] x長さ [100] y長さ [50] 種類 [1]\nステージ生成 x [1200] y [-100] x長さ [100] y長さ [50] 種類 [3]\nステージ生成 x [1400] y [-100] x長さ [300] y長さ [50] 種類 [1]\nステージ生成 x [1180] y [120] x長さ [455] y長さ [30] 種類 [2]\nステージ生成 x [1580] y [25] x長さ [50] y長さ [300] 種類 [1]\nステージ生成 x [1200] y [160] x長さ [400] y長さ [30] 種類 [1]\nステージ生成 x [1300] y [205] x長さ [40] y長さ [40] 種類 [2]\nステージ生成 x [1100] y [205] x長さ [40] y長さ [40] 種類 [2]\nステージ生成 x [970] y [160] x長さ [40] y長さ [30] 種類 [3]\nステージ生成 x [1200] y [420] x長さ [400] y長さ [30] 種類 [1]\nステージ生成 x [1200] y [500] x長さ [250] y長さ [40] 種類 [2]\nステージ生成 x [1080] y [550] x長さ [520] y長さ [40] 種類 [1]\nステージ生成 x [840] y [395] x長さ [40] y長さ [250] 種類 [2]\nステージ生成 x [690] y [300] x長さ [240] y長さ [60] 種類 [1]\nステージ生成 x [505] y [300] x長さ [110] y長さ [60] 種類 [3]\nステージ生成 x [490] y [550] x長さ [80] y長さ [40] 種類 [4]\nプレイヤー初期化\nforever\n    全体の処理\nend\n\nwhen flag clicked\nset volume to (70) %\nforever\n    play sound [Unlimited v] until done\nend\n\ndefine 文字の線を引く (始点の段) (始点の列) (終点の段) (終点の列)\ngo to x: (((text_x) - ((textsize_x) / (2))) + (((textsize_x) / (4)) * ((始点の列) - (1)))) y: (((text_y) + ((textsize_y) / (2))) - (((textsize_y) / (4)) * ((始点の段) - (1))))\npen down\ngo to x: (((text_x) - ((textsize_x) / (2))) + (((textsize_x) / (4)) * ((終点の列) - (1)))) y: (((text_y) + ((textsize_y) / (2))) - (((textsize_y) / (4)) * ((終点の段) - (1))))\npen up\n\ndefine 1文字 (text)\nif <[text v] contains (text)?> then\n    set [i2 v] to [4]\n    set [j v] to (item # of (text) in [text v])\n    repeat until <(letter (i2) of (item (j) of [data v])) = []>\n        文字の線を引く (letter ((i2) - (3)) of (item (j) of [data v])) (letter ((i2) - (2)) of (item (j) of [data v])) (letter ((i2) - (1)) of (item (j) of [data v])) (letter (i2) of (item (j) of [data v]))\n        change [i2 v] by (4)\n    end\nend\n\ndefine 文字全体 (text) (x) (y)\ngo to x: ((x) - (((textsize_x) + (10)) * ((length of (text)) - (1)))) y: (y)\nset [text_x v] to (x position)\nset [text_y v] to (y position)\nset [i v] to [0]\nrepeat (length of (text))\n    change [i v] by (1)\n    1文字 (letter (i) of (text))\n    change [text_x v] by ((textsize_x) + (10))\nend\n\n@さむね\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\n