Grass-100% pen-A scrolling platformer(mobile friendly!) #games #all

Instructions: Play it HERE:https://forkphorus.github.io/#415454921\nɴᴏᴛᴇ: ɪ ᴀᴍ @ᴘᴏᴘᴜɪᴀʀ ʙᴜᴛ ᴄᴀᴘɪᴛᴀʟ "ɪ".\nᴡᴇʟᴄᴏᴍᴇ ᴛᴏ:\nɢʀᴀꜱꜱ-100% ᴘᴇɴ-ᴀ ꜱᴄʀᴏʟʟɪɴɢ ᴘʟᴀᴛꜰᴏʀᴍᴇʀ(ᴍᴏʙɪʟᴇ ꜰʀɪᴇɴᴅʟʏ!)!\nᴀᴠᴀɪʟᴀʙʟᴇ ᴋᴇʏꜱ ᴛᴏ ᴍᴏᴠᴇ:\nᴀʀʀᴏᴡ ᴋᴇʏꜱ.\nᴡ,ᴀ,ꜱ,ᴅ ᴋᴇʏꜱ.\nᴛᴀᴘ ɪꜰ ʏᴏᴜ ᴀʀᴇ ɪɴ ᴍᴏʙɪʟᴇ.\nᴛʜɪɴɢꜱ/ᴄᴏʟᴏʀꜱ ᴍᴇᴀɴɪɴɢ:\n ʀᴇᴅ=ᴅᴇᴀᴛʜ \nᴘᴜʀᴘʟᴇ=ᴊᴜᴍᴘ\nꜰʟᴀɢ=ᴄʜᴇᴄᴋ ᴘᴏɪɴᴛ\nɢʀᴇᴇɴ/ʙʀᴏᴡɴ =ɢʀᴏᴜɴᴅ\nɢʀᴇᴇɴ=ꜰɪɴɪꜱʜ

@Stage\n\nwhen flag clicked\nforever\n    play sound [Music v] until done\nend\n\n@Pen\n\nwhen flag clicked\nset [finish! v] to [0]\nset [inair v] to [0]\nset [playerx v] to [-200]\nset [playery v] to [0]\nset [yvel v] to [0]\nset [xvel v] to [0]\nhide\nset [x v] to [-200]\nset [spawnx v] to [4]\nset [spawny v] to [6]\nforever\n    Tick\nend\n\ndefine Draw Block (x) (y) (type)\nif <(type) = [1]> then\n    set pen color to (#ffa100)\nend\nif <(type) = [2]> then\n    set pen color to (#ff1818)\nend\nif <(type) = [3]> then\n    set pen color to (#d800b9)\nend\nif <(type) = [4]> then\n    set pen color to (#ff9400)\nend\nif <(type) = [5]> then\n    set pen color to (#21cc00)\nend\nif <(type) = [6]> then\n    set pen size to (20)\n    set pen color to (#9977ff)\nend\nif <(type) = [7]> then\n    set pen color to (#0ee400)\nend\nif <(type) = [8]> then\n    set pen color to (#ff0000)\nend\nif <(type) = [9]> then\n    set pen color to (#ffc700)\nend\nif <(type) = [10]> then\n    set pen color to (#7fde13)\nend\nif <<((((x) * (20)) - (X)) - (240)) > [-240]> and <((((x) * (20)) - (X)) - (240)) < [240]>> then\n    pen up\n    go to x: ((((x) * (20)) - (X)) - (240)) y: (((y) * (20)) - (180))\n    set pen size to (20)\n    pen down\n    set pen size to (10)\n    change x by (7)\n    change y by (7)\n    change x by (-14)\n    change y by (-14)\n    change x by (14)\n    change y by (14)\nend\n\ndefine Player Physics\npen up\ngo to x: ((PlayerX) - (X)) y: (PlayerY)\nset size to (100) %\nif <<((PlayerX) - (X)) > [-240]> and <((PlayerX) - (X)) < [240]>> then\n    switch costume to (pen v)\n    set size to (400) %\n    pen up\n    go to x: ((PlayerX) - (X)) y: (PlayerY)\n    change [yvel v] by (-1)\n    change [playery v] by (Yvel)\n    go to x: ((PlayerX) - (X)) y: (PlayerY)\n    switch costume to (pen v)\n    point in direction (180)\n    if <<touching color (#0de400)?> or <touching color (#ffa100)?>> then\n        repeat ([abs v] of (Yvel) )\n            if <<touching color (#0de400)?> or <touching color (#ffa100)?>> then\n                change y by (((Yvel) / ([abs v] of (Yvel) )) * (-1))\n                change [playery v] by (((Yvel) / ([abs v] of (Yvel) )) * (-1))\n            end\n        end\n        set [inair v] to [0]\n        set [yvel v] to [0]\n        change y by (-2)\n        if <<touching color (#0de400)?> or <touching color (#ffa100)?>> then\n            if <<key (w v) pressed?> or <<key (up arrow v) pressed?> or <<(mouse y) > (PlayerY)> and <mouse down?>>>> then\n                set [inair v] to [1]\n                set [yvel v] to [10]\n            end\n        end\n        change y by (2)\n    end\n    if <touching color (#d800b9)?> then\n        set [yvel v] to [16]\n    end\n    if <touching color (#20cc00)?> then\n        broadcast (Won v)\n    end\n    if <<touching color (#ffc700)?> or <touching color (#ff0000)?>> then\n        if <(checkpoint 1) = [0]> then\n            start sound [Collect v]\n        end\n        if <<(checkpoint 2) = [0]> and <[4500] < (PlayerX)>> then\n            start sound [Collect v]\n            set [checkpoint 2 v] to [1]\n        end\n        set [checkpoint 1 v] to [1]\n        set [spawnx v] to (round (((PlayerX) + (240)) / (20)))\n        set [spawny v] to (round (((PlayerY) + (180)) / (20)))\n    end\n    go to x: ((PlayerX) - (X)) y: (PlayerY)\n    set [xvel v] to ((Xvel) * (.9))\n    if <<key (d v) pressed?> or <<key (right arrow v) pressed?> or <<(mouse x) > ((PlayerX) - (X))> and <mouse down?>>>> then\n        change [xvel v] by (0.7)\n    end\n    if <<key (a v) pressed?> or <<key (left arrow v) pressed?> or <<(mouse x) < ((PlayerX) - (X))> and <mouse down?>>>> then\n        change [xvel v] by (-0.7)\n    end\n    change [playerx v] by (Xvel)\n    go to x: (((PlayerX) - (X)) - (0.5)) y: (PlayerY)\n    set size to (410) %\n    point in direction (90)\n    if <<touching color (#0de400)?> or <touching color (#ffa100)?>> then\n        repeat (([ceiling v] of ([abs v] of (Xvel) ) ) + (5))\n            if <<touching color (#0de400)?> or <touching color (#ffa100)?>> then\n                change [playerx v] by (((Xvel) / ([abs v] of (Xvel) )) * (-1))\n                change x by (((Xvel) / ([abs v] of (Xvel) )) * (-1))\n            end\n        end\n        change [playerx v] by (((Xvel) / ([abs v] of (Xvel) )) * (-1))\n        if <(InAir) = [1]> then\n            set [yvel v] to [10]\n            set [xvel v] to ((Xvel) * (-1))\n        else\n            set [xvel v] to [0]\n        end\n    end\n    switch costume to (pen v)\n    set size to (400) %\n    if <<touching color (#ff1818)?> or <(PlayerY) < [-220]>> then\n        set [playerx v] to (((SpawnX) * (20)) - (240))\n        set [playery v] to ((((SpawnY) * (20)) - (180)) + (10))\n        set [yvel v] to [0]\n        set [xvel v] to [0]\n    end\n    if <<touching color (#0de400)?> or <touching color (#ffa100)?>> then\n        set [moves v] to [1]\n        repeat until <not <<touching color (#0de400)?> or <touching color (#ffa100)?>>>\n            set [counter v] to [0]\n            repeat until <<(Counter) = (Moves)> or <not <<touching color (#0de400)?> or <touching color (#ffa100)?>>>>\n                change y by (3)\n                change [playery v] by (3)\n                change [counter v] by (1)\n            end\n            set [counter v] to [0]\n            repeat until <<(Counter) = (Moves)> or <not <<touching color (#0de400)?> or <touching color (#ffa100)?>>>>\n                change x by (3)\n                change [playerx v] by (3)\n                change [counter v] by (1)\n            end\n            change [moves v] by (1)\n            set [counter v] to [0]\n            repeat until <<(Counter) = (Moves)> or <not <<touching color (#0de400)?> or <touching color (#ffa100)?>>>>\n                change y by (-3)\n                change [playery v] by (-3)\n                change [counter v] by (1)\n            end\n            set [counter v] to [0]\n            repeat until <<(Counter) = (Moves)> or <not <<touching color (#0de400)?> or <touching color (#ffa100)?>>>>\n                change x by (-3)\n                change [playerx v] by (-3)\n                change [counter v] by (1)\n            end\n            change [moves v] by (1)\n        end\n    end\n    set size to (100) %\nend\nchange [x v] by (((PlayerX) - (X)) / (10))\n\ndefine Draw Player\nif <<((PlayerX) - (X)) > [-240]> and <((PlayerX) - (X)) < [240]>> then\n    set pen color to (#000000)\n    pen up\n    go to x: ((PlayerX) - (X)) y: (PlayerY)\n    set pen size to (20)\n    pen down\n    set pen size to (10)\n    change x by (7)\n    change y by (7)\n    change x by (-14)\n    change y by (-14)\n    change x by (14)\n    change y by (14)\n    pen up\n    go to x: (((PlayerX) - (X)) + (5)) y: ((PlayerY) + (5))\n    set pen size to (5)\n    set pen color to (#000000)\n    pen down\n    point towards (mouse-pointer v)\n    move (1) steps\n    set pen size to (2)\n    set pen color to (#000000)\n    pen down\n    pen up\n    go to x: (((PlayerX) - (X)) - (5)) y: ((PlayerY) + (5))\n    set pen size to (5)\n    set pen color to (#000000)\n    pen down\n    point towards (mouse-pointer v)\n    move (1) steps\n    set pen size to (2)\n    set pen color to (#000000)\n    pen down\n    go to x: (((PlayerX) - (X)) - (0)) y: ((PlayerY) + (0))\n    set pen size to (20)\n    set pen color to (#ffffff)\n    pen down\n    go to x: (((PlayerX) - (X)) - (1)) y: ((PlayerY) + (0))\n    set pen size to (13)\n    set pen color to (#000000)\n    pen down\n    go to x: (((PlayerX) - (X)) + (1)) y: ((PlayerY) + (1))\n    set pen size to (7)\n    set pen color to (#ffffff)\n    pen down\nend\n\ndefine Draw blocks (x) (y) (x2) (y2) (type) Every (number) Blocks\nset [blocky v] to (y)\nrepeat ((((y2) - (y)) / (number)) + (1))\n    set [blockx v] to (x)\n    repeat (((x2) - (x)) / (number))\n        Draw Block (BlockX) (BlockY) (type)\n        change [blockx v] by (number)\n    end\n    Draw Block (BlockX) (BlockY) (type)\n    change [blocky v] by (number)\nend\n\nwhen I receive [won v]\nchange pen size by (33333333)\nstop [other scripts in sprite v]\npen up\ngo to x: (0) y: (0)\nset pen color to (#000000)\nset pen size to (6666)\npen down\nwait (1) seconds\ngo to x: (-60) y: (0)\ncongrats\n\ndefine Draw Portal at (x) (y) to (telex) (teley)\nset pen color to (#9977ff)\nif <<((((x) * (20)) - (X)) - (240)) > [-240]> and <((((x) * (20)) - (X)) - (240)) < [240]>> then\n    pen up\n    go to x: ((((x) * (20)) - (X)) - (240)) y: (((y) * (20)) - (180))\n    set pen size to (20)\n    pen down\n    set pen size to (10)\n    change x by (7)\n    change y by (7)\n    change x by (-14)\n    change y by (-14)\n    change x by (14)\n    change y by (14)\n    if <<<(PlayerX) > ((((x) * (20)) - (240)) - (20))> and <(PlayerX) < ((((x) * (20)) - (240)) + (20))>> and <<(PlayerY) < ((((y) * (20)) - (180)) + (20))> and <(PlayerY) > ((((y) * (20)) - (180)) - (20))>>> then\n        set [playerx v] to (((telex) * (20)) - (240))\n        set [playery v] to (((teley) * (20)) - (180))\n    end\nend\n\ndefine Tick\nerase all\nif <<(PlayerX) > [-400]> and <not <(PlayerX) > [386]>>> then\n    Draw blocks [0] [0] [10] [4] [7] Every [1] Blocks\n    Draw blocks [0] [0] [10] [3] [1] Every [1] Blocks\n    Draw blocks [10] [0] [20] [12] [7] Every [1] Blocks\n    Draw blocks [10] [0] [20] [11] [1] Every [1] Blocks\nend\nif <<(PlayerX) > [-200]> and <not <(PlayerX) > [1000]>>> then\n    Draw blocks [20] [0] [40] [12] [7] Every [1] Blocks\n    Draw blocks [20] [0] [40] [11] [1] Every [1] Blocks\n    Draw blocks [25] [0] [27] [12] [2] Every [1] Blocks\n    Draw blocks [35] [0] [37] [12] [2] Every [1] Blocks\n    Draw blocks [15] [0] [17] [12] [2] Every [1] Blocks\nend\nif <<(PlayerX) > [355]> and <not <(PlayerX) > [2000]>>> then\n    Draw blocks [41] [0] [70] [4] [2] Every [1] Blocks\n    Draw blocks [44] [0] [46] [4] [3] Every [1] Blocks\n    Draw blocks [52] [0] [54] [4] [3] Every [1] Blocks\n    Draw blocks [60] [0] [62] [4] [3] Every [1] Blocks\n    Draw blocks [68] [0] [70] [4] [3] Every [1] Blocks\nend\nif <<(PlayerX) > [355]> and <not <(PlayerX) > [2100]>>> then\n    if <(checkpoint 1) = [0]> then\n        Draw blocks [80] [5] [80] [8] [9] Every [1] Blocks\n        Draw blocks [80] [7] [81] [8] [8] Every [1] Blocks\n    else\n        Draw blocks [80] [5] [80] [8] [9] Every [1] Blocks\n        Draw blocks [80] [7] [81] [8] [10] Every [1] Blocks\n    end\n    Draw blocks [78] [0] [85] [4] [7] Every [1] Blocks\n    Draw blocks [78] [0] [85] [3] [1] Every [1] Blocks\n    Draw blocks [94] [3] [95] [4] [7] Every [1] Blocks\n    Draw blocks [94] [2] [95] [3] [1] Every [1] Blocks\n    Draw blocks [103] [3] [104] [4] [7] Every [1] Blocks\n    Draw blocks [103] [2] [104] [3] [1] Every [1] Blocks\nend\nif <<(PlayerX) > [1500]> and <not <(PlayerX) > [3000]>>> then\n    Draw blocks [112] [3] [113] [4] [7] Every [1] Blocks\n    Draw blocks [112] [2] [113] [3] [1] Every [1] Blocks\n    Draw blocks [120] [0] [130] [4] [7] Every [1] Blocks\n    Draw blocks [120] [0] [130] [3] [1] Every [1] Blocks\n    Draw blocks [135] [7] [140] [8] [7] Every [1] Blocks\n    Draw blocks [135] [0] [140] [7] [1] Every [1] Blocks\n    Draw blocks [145] [9] [150] [10] [7] Every [1] Blocks\n    Draw blocks [145] [0] [150] [9] [1] Every [1] Blocks\n    Draw blocks [155] [11] [160] [12] [7] Every [1] Blocks\n    Draw blocks [155] [0] [160] [11] [1] Every [1] Blocks\n    Draw blocks [161] [0] [170] [17] [5] Every [1] Blocks\nend\nPlayer Physics\nDraw Player\n\nDraw blocks [45] [7] [50] [10] [7] Every [1] Blocks\nDraw blocks [45] [7] [50] [9] [1] Every [1] Blocks\n\nDraw blocks [65] [4] [68] [4] [4] Every [1] Blocks\n\nDraw blocks [1] [4] [3] [8] [4] Every [1] Blocks\n\nDraw Portal at [126] [4] to [129] [5]\nDraw Portal at [135] [4] to [130] [16]\nDraw Portal at [135] [7] to [129] [5]\nDraw Portal at [135] [10] to [129] [5]\n\ndefine congrats\nset [finish! v] to [1]\nset pen color to (#64ff00)\nset pen size to (4)\npen down\nchange x by (-10)\nchange y by (-20)\nchange x by (10)\npen up\nchange x by (10)\npen down\nchange y by (20)\nchange x by (10)\nchange y by (-20)\nchange x by (-10)\npen up\nchange x by (20)\npen down\nchange y by (20)\nchange x by (10)\nchange y by (-20)\npen up\nchange x by (20)\nchange y by (20)\npen down\nchange x by (-10)\nchange y by (-20)\nchange x by (10)\nchange y by (10)\nchange x by (-5)\npen up\nchange y by (-10)\nchange x by (15)\npen down\nchange y by (20)\nchange x by (10)\nchange y by (-10)\nchange x by (-10)\ngo to x: ((x position) + (10)) y: ((y position) - (10))\npen up\nchange x by (10)\npen down\nchange y by (20)\nchange x by (10)\nchange y by (-10)\nchange x by (-10)\npen up\nchange x by (10)\npen down\nchange y by (-10)\npen up\nchange x by (15)\npen down\nchange y by (20)\npen up\nchange x by (-5)\npen down\nchange x by (10)\npen up\nchange x by (10)\nchange y by (-20)\npen down\nchange x by (10)\nchange y by (10)\nchange x by (-10)\nchange y by (10)\nchange x by (10)\npen up\n\nwait (1) seconds\ngo to x: (30) y: (0)\n\nswitch backdrop to (backdrop1 v)\n\npoint towards (mouse-pointer v)\nmove (1) steps\nset pen size to (2)\nset pen color to (#00d8ff)\npen down\n\nDraw blocks [] [] [] [] [] Every [] Blocks\n\nDraw blocks [127] [-1] [127] [18] [3] Every [1] Blocks\n\nDraw blocks [75] [0] [80] [3] [1] Every [1] Blocks\n\nwhen flag clicked\nset [checkpoint 2 v] to [0]\nset [checkpoint 1 v] to [0]\n\nset volume to (50) %\n\n\nplay sound [Collect v] until done\n\nPlayer Physics\nDraw Player\n\nwhen flag clicked\nset [moving platformer y v] to [3]\nset [moving platformer x v] to [246]\nforever\n    repeat (16)\n        change [moving platformer y v] by (0.5)\n    end\n    wait (1) seconds\n    repeat (16)\n        change [moving platformer y v] by (-0.5)\n    end\n    wait (1) seconds\nend\n\nset [checkpoint 1 v] to [1]\nset [spawnx v] to (round (((PlayerX) + (240)) / (20)))\nset [spawny v] to (round (((PlayerY) + (180)) / (20)))\n\nset [spawnx v] to (round (((PlayerX) + (240)) / (20)))\nset [spawny v] to (round (((PlayerY) + (180)) / (20)))\n\nPlayer Physics\nDraw Player\n\nwhen flag clicked\nset [moving platformer x v] to [246]\nforever\n    repeat (8)\n        change [moving platformer x v] by (1)\n    end\n    wait (1) seconds\n    repeat (8)\n        change [moving platformer x v] by (-1)\n    end\n    wait (1) seconds\nend\n\ngo to x: (80) y: (0)\n\nDraw blocks [0] [0] [10] [4] [7] Every [1] Blocks\n\nDraw blocks [20] [0] [40] [11] [2] Every [] Blocks\n\nDraw blocks [80] [7] [81] [8] [8] Every [1] Blocks\n\nDraw blocks [120] [0] [122] [4] [7] Every [1] Blocks\n\nDraw blocks [131] [0] [140] [17] [5] Every [1] Blocks\n\n@Sprite1\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo to [front v] layer\nshow\n\n@Sprite2\n\n@Blank\n\n