NⲈON || 100% PEN SCROLLING PLATFORMER | ENTRY

Instructions: Ⲛ Ⲉ Ⲟ Ⲛ\n\n１００％ ＰＥＮ\n\nWᴇʟᴄᴏᴍᴇ ᴛᴏ NEON!  Iᴛ's ᴀ 100% Pᴇɴ Sᴄʀᴏʟʟɪɴɢ Pʟᴀᴛғᴏʀᴍᴇʀ!\n\nBʟᴜᴇ ɪs ɢʀᴏᴜɴᴅ, ʀᴇᴅ ɪs ʟᴀᴠᴀ, ʟɪɢʜᴛ ʙʟᴜᴇ ɪs ʙᴏᴜɴᴄʏ, ɢʀᴇᴇɴ ᴀʀᴇ ɢʀᴀᴠɪᴛʏ sᴡɪᴄᴛʜᴇʀs\n\nAᴄʜɪᴠᴇᴍᴇɴᴛs:\n- 50 Lᴏᴠᴇs❓ ✔️\n- 50 Fᴀᴠᴇs ❓ ✔️\n- 100 Lᴏᴠᴇs ❓ ✔️\n- 100 Fᴀᴠᴇs ❓ ✔️\n- 150 Lᴏᴠᴇs ❓ ✔️\n- 150 Fᴀᴠᴇs ❓ ✔️\n- 250 Lᴏᴠᴇs❓ ❌\n- 250 Fᴀᴠᴇs❓❌\n- 500 Lᴏᴠᴇs❓ ❌\n- 500 Fᴀᴠᴇs❓ ❌\n- Tᴏᴘ-Rᴇᴍɪxᴇᴅ❓ ❌\n- Tᴏᴘ-Lᴏᴠᴇᴅ❓ ❌\n- Fʀᴏɴᴛ ᴘᴀɢᴇᴅ❓ ❌

@Stage\n\n@Pen\n\ndefine Draw Grid\nset pen size to (5)\nset pen color to (#f5f5f5)\npen up\ngo to x: (((-240) - (round ((CamX) mod (40)))) + ((((x) - (CamX)) / (10)) mod (40))) y: (-180)\nrepeat (13)\n    pen down\n    set y to (180)\n    pen up\n    change x by (40)\n    set y to (-180)\nend\ngo to x: (-240) y: (((-180) - ((round (CamY)) mod (40))) + ((((y) - (CamY)) / (10)) mod (40)))\nrepeat (10)\n    pen down\n    set x to (240)\n    pen up\n    change y by (40)\n    set x to (-240)\nend\n\nwhen flag clicked\nset [time v] to [0]\nbroadcast (message1 v)\nReset\nMake Level\nforever\n    erase all\n    Draw Grid\n    Render\n    update\n    Draw Player (eyes)\nend\n\ndefine Reset\nset [pen radius v] to [10]\nset [camy v] to (y)\nset [camx v] to (x)\nset [collisions v] to [0]\nset [sx v] to [0]\nset [sy v] to [0]\nset [x v] to [0]\nset [y v] to [100]\nset [gravity v] to [-1]\n\ndefine update\nchange [camx v] by (((x) - (CamX)) / (10))\nchange [camy v] by (((y) - (CamY)) / (10))\nchange [sx v] by (((<key (left arrow v) pressed?> * (-1)) + <key (right arrow v) pressed?>) - ((sx) * (0.1)))\nchange [x v] by (sx)\ncollisions\nif <(Collisions) = [1]> then\n    change [x v] by (() - (sx))\n    set [sx v] to [0]\nend\nchange [sy v] by ((1) * (Gravity))\nchange [y v] by (sy)\ncollisions\nif <(Collisions) = [1]> then\n    change [y v] by (() - (sy))\n    ap (x) (y)\n    set [sy v] to (<key (up arrow v) pressed?> * (15))\nend\nupdate moving platforms - tributary\nupdate particles\n\ndefine Render\nset [_i v] to [0]\nrepeat ((length of [points v]) / (# rects))\n    pen up\n    set pen size to (Pen Radius)\n    get colour (type (item ((_i) + (5)) of [points v]) )\n    if <(item ((_i) + (5)) of [points v]) = [2]> then\n        set [_2 v] to [0]\n        set [_i3 v] to [0]\n        repeat ([floor v] of ((item ((_i) + (3)) of [points v]) / ((Pen Radius) / (2))) )\n            pen up\n            Go To ( X ((item ((_i) + (1)) of [points v]) + (_2)) Y (item ((_i) + (2)) of [points v]) )\n            pen down\n            Go To ( X ((item ((_i) + (1)) of [points v]) + (_2)) Y ((((item ((_i) + (2)) of [points v]) + (item ((_i) + (4)) of [points v])) - (10)) + (([sin v] of (((timer) * (100)) + (_i3)) ) * (10))) )\n            change [_2 v] by ((Pen Radius) * (0.5))\n            change [_i3 v] by (20)\n        end\n    else\n        Go To ( X (item ((_i) + (1)) of [points v]) Y (item ((_i) + (2)) of [points v]) )\n        pen down\n        Go To ( X ((item ((_i) + (1)) of [points v]) + (item ((_i) + (3)) of [points v])) Y (item ((_i) + (2)) of [points v]) )\n        Go To ( X ((item ((_i) + (1)) of [points v]) + (item ((_i) + (3)) of [points v])) Y ((item ((_i) + (2)) of [points v]) + (item ((_i) + (4)) of [points v])) )\n        Go To ( X (item ((_i) + (1)) of [points v]) Y ((item ((_i) + (2)) of [points v]) + (item ((_i) + (4)) of [points v])) )\n        Go To ( X (item ((_i) + (1)) of [points v]) Y (item ((_i) + (2)) of [points v]) )\n    end\n    change [_i v] by (# rects)\nend\n\ndefine Make Level\ndelete all of [points v]\ndelete all of [particles v]\nAdd Cube [-140] [-100] [200] [75] type [1] moving? <> [] [] []\nAdd Cube [65] [-100] [100] [80] type [2] moving? <> [] [] []\nAdd Cube [170] [-100] [100] [75] type [1] moving? <> [] [] []\nAdd Cube [310] [-45] [20] [20] type [3] moving? <> [200] [0] [90]\nAdd Cube [380] [-100] [100] [75] type [1] moving? <> [200] [0] [90]\nAdd Cube [480] [-50] [50] [25] type [1] moving?  [200] [0] [90]\nAdd Cube [480] [-100] [280] [25] type [2] moving? <> [200] [0] [90]\nAdd Cube [760] [-100] [] [25] type [2] moving? <> [200] [0] [90]\nAdd Cube [760] [-100] [300] [75] type [1] moving? <> [200] [0] [90]\nAdd Cube [1060] [-100] [50] [75] type [4] moving? <> [200] [0] [90]\nAdd Cube [1060] [200] [200] [50] type [1] moving? <> [200] [0] [90]\nAdd Cube [1260] [200] [50] [50] type [5] moving? <> [200] [0] [90]\nAdd Cube [1400] [-100] [200] [75] type [1] moving? <> [200] [0] [90]\nAdd Cube [1650] [-100] [75] [25] type [1] moving?  [500] [0] [120]\nAdd Cube [2250] [-100] [200] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [2450] [-100] [100] [80] type [2] moving? <> [500] [0] [90]\nAdd Cube [2550] [-100] [200] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [2750] [-100] [100] [80] type [2] moving? <> [500] [0] [90]\nAdd Cube [2850] [-100] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [2950] [-45] [50] [20] type [3] moving? <> [500] [0] [90]\nAdd Cube [3100] [100] [50] [20] type [3] moving? <> [500] [0] [90]\nAdd Cube [3175] [400] [50] [20] type [3] moving? <> [500] [0] [90]\nAdd Cube [3250] [600] [200] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [3450] [500] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [3600] [400] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [3700] [300] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [3800] [200] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [3900] [100] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [4000] [0] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [4100] [-100] [100] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [4200] [-100] [700] [75] type [4] moving? <> [500] [0] [90]\nAdd Cube [4200] [100] [700] [75] type [5] moving? <> [500] [0] [90]\nAdd Cube [4900] [100] [250] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [5220] [100] [50] [75] type [5] moving? <> [500] [0] [90]\nAdd Cube [5270] [-100] [500] [75] type [1] moving? <> [500] [0] [90]\nAdd Cube [5770] [-100] [20] [500] type [1] moving? <> [500] [0] [90]\n\ndefine Add Cube (x) (y) (length) (height) type (type) moving? <m?> (x2) (y2) (sp)\nset [# rects v] to (length of [points v])\nadd (x) to [points v]\nadd (y) to [points v]\nadd (length) to [points v]\nadd (height) to [points v]\nadd (type) to [points v]\nadd <m?> to [points v]\nadd (<m?> * (x2)) to [points v]\nadd (<m?> * (y2)) to [points v]\nadd (<m?> * (sp)) to [points v]\nadd <m?> to [points v]\nadd (x) to [points v]\nadd (y) to [points v]\nset [# rects v] to ((length of [points v]) - (# rects))\n\ndefine Go To ( X (x) Y (y) )\ngo to x: ((x) - (CamX)) y: ((y) - (CamY))\n\ndefine get colour (type (type) )\nif <(type) = [1]> then\n    set pen color to (#000488)\nend\nif <(type) = [2]> then\n    set pen color to (#b30000)\n    set pen size to (Pen Radius)\nend\nif <(type) = [3]> then\n    set pen color to (#0029b3)\nend\nif <(type) = [4]> then\n    set pen color to (#24b900)\nend\nif <(type) = [5]> then\n    set pen color to (#24b900)\nend\nif <(type) = [6]> then\n    set pen color to (#b9b9b9)\nend\nset pen size to (Pen Radius)\n\ndefine collisions\nset [_i v] to [0]\nset [collisions v] to [0]\nset [# v] to [-1]\nrepeat ((length of [points v]) / (# rects))\n    if <((x) + ((Size) + ((Pen Radius) * (2)))) > (item ((_i) + (1)) of [points v])> then\n        if <((y) + ((Size) + ((Pen Radius) * (2)))) > (item ((_i) + (2)) of [points v])> then\n            if <((x) - ((Pen Radius) * (2))) < ((item ((_i) + (1)) of [points v]) + (item ((_i) + (3)) of [points v]))> then\n                if <((y) - ((Pen Radius) * (2))) < ((item ((_i) + (2)) of [points v]) + (item ((_i) + (4)) of [points v]))> then\n                    set [collisions v] to (item ((_i) + (5)) of [points v])\n                    set [# v] to (_i)\n                    if <(Collisions) = [3]> then\n                        set [sy v] to (((Gravity) * (-1)) * ((25) + (<key (up arrow v) pressed?> * (5))))\n                        broadcast (message1 v)\n                    end\n                    if <(Collisions) = [4]> then\n                        set [gravity v] to [1]\n                        set [sy v] to (Gravity)\n                    end\n                    if <(Collisions) = [5]> then\n                        set [gravity v] to [-1]\n                        set [sy v] to (Gravity)\n                    end\n                end\n            end\n        end\n    end\n    change [_i v] by (# rects)\nend\nif <<<(Collisions) = [2]> or <(CamY) < [-700]>> or <[700] < (CamY)>> then\n    Reset\nend\n\ndefine Draw Player (eyes)\nset pen color to (#000000)\npen up\nset pen size to (30)\ngo to x: ((x) - (CamX)) y: ((y) - (CamY))\npen down\nset pen size to (10)\ngo to x: ((x) - (CamX)) y: (((y) + (10.5)) - (CamY))\ngo to x: (((x) + (10.5)) - (CamX)) y: (((y) + (10.5)) - (CamY))\ngo to x: (((x) + (10.5)) - (CamX)) y: (((y) + (-10.5)) - (CamY))\ngo to x: (((x) + (-10.5)) - (CamX)) y: (((y) + (-10.5)) - (CamY))\ngo to x: (((x) + (-10.5)) - (CamX)) y: (((y) + (10.5)) - (CamY))\ngo to x: (((x) + (10)) - (CamX)) y: (((y) + (10.5)) - (CamY))\npen up\nset pen size to (25)\nset pen color to (#ffffff)\ngo to x: ((x) - (CamX)) y: ((y) - (CamY))\npen down\nset pen size to (10)\nset pen color to (#000000)\npen up\ngo to x: ((((sx) / (2)) + (x)) - (CamX)) y: ((((sy) / (3)) + (y)) - (CamY))\npen down\n\ndefine update moving platforms - tributary\nset [_i v] to [0]\nrepeat ((length of [points v]) / (# rects))\n    if <(item ((_i) + (6)) of [points v]) = [1]> then\n        set [px v] to (item ((_i) + (1)) of [points v])\n        set [py v] to (item ((_i) + (2)) of [points v])\n        change [px v] by (((((item ((_i) + (11)) of [points v]) + (item ((_i) + (7)) of [points v])) - (item ((_i) + (11)) of [points v])) / (item ((_i) + (9)) of [points v])) * (item ((_i) + (10)) of [points v]))\n        change [py v] by (((((item ((_i) + (12)) of [points v]) + (item ((_i) + (8)) of [points v])) - (item ((_i) + (12)) of [points v])) / (item ((_i) + (9)) of [points v])) * (item ((_i) + (10)) of [points v]))\n        replace item ((_i) + (1)) of [points v] with (px)\n        replace item ((_i) + (2)) of [points v] with (py)\n        if <(px) > ((item ((_i) + (11)) of [points v]) + (item ((_i) + (7)) of [points v]))> then\n            replace item ((_i) + (10)) of [points v] with [-1]\n        end\n        if <(px) < (item ((_i) + (11)) of [points v])> then\n            replace item ((_i) + (10)) of [points v] with [1]\n        end\n        if <(_i) = (#)> then\n            collisions\n            if <(Collisions) = [1]> then\n                change [x v] by ((px) - (d1))\n                repeat until <not <(Collisions) = [1]>>\n                    if <(sy) > [0]> then\n                        change [y v] by (-1)\n                    else\n                        change [y v] by (1)\n                    end\n                    collisions\n                end\n                set [sy v] to [0]\n            end\n        end\n    end\n    change [_i v] by (# rects)\nend\n\ndefine ap (x) (y)\nrepeat ([floor v] of ([sqrt v] of ((-10) - (sy)) ) )\n    add (p) (x) (y) (pick random (-5) to (5)) (pick random (3) to (6))\nend\n\ndefine add (p) (x) (y) (sx) (sy)\nset [# particle v] to (length of [particles v])\nadd (x) to [particles v]\nadd (y) to [particles v]\nadd (sx) to [particles v]\nadd (sy) to [particles v]\nadd (pick random (0) to (100)) to [particles v]\nadd [0] to [particles v]\nset [# particle v] to ((length of [particles v]) - (# Particle))\n\ndefine update particles\nset [_i v] to [0]\nrepeat ((length of [particles v]) / (# Particle))\n    pen up\n    set pen color to (((((item ((_i) + (5)) of [particles v]) * (256)) + (item ((_i) + (5)) of [particles v])) * (256)) + (item ((_i) + (5)) of [particles v]))\n    set pen (transparency v) to (item ((_i) + (6)) of [particles v])\n    Go To ( X (item ((_i) + (1)) of [particles v]) Y (item ((_i) + (2)) of [particles v]) )\n    pen down\n    pen up\n    change ((_i) + (1)) (item ((_i) + (3)) of [particles v])\n    change ((_i) + (2)) (item ((_i) + (4)) of [particles v])\n    change ((_i) + (4)) [-1]\n    change ((_i) + (6)) [1]\n    if <(item ((_i) + (6)) of [particles v]) > [105]> then\n        delete particle (_i)\n    else\n        change [_i v] by (# Particle)\n    end\nend\n\ndefine delete particle (ai)\nrepeat (# Particle)\n    delete ((ai) + (1)) of [particles v]\nend\n\ndefine change (ai) (val)\nreplace item (ai) of [particles v] with ((item (ai) of [particles v]) + (val))\n\nwhen flag clicked\nforever\n    wait (0.1) seconds\n    change [time v] by (0.1)\nend\n\n@Sprite1\n\nwhen flag clicked\nhide\n\n