Painted | A Scrolling Platformer | Mobile Friendly
@Stage\n\nwhen [m v] key pressed\n\nset [mouse v] to (join ((mouse x) + (SCROLL X)) (join [, ] ((mouse y) + (SCROLL Y))))\n\nwhen flag clicked\nforever\n    play sound [Panda Eyes - Nostalgia 64 v] until done\nend\n\n@3.0 Helper\n\n@Circle\n\nwhen flag clicked\nbroadcast (the fact that the green flag was clicked v) and wait\nbroadcast (Play Game v) and wait\n\nwhen I receive [the fact that the green flag was clicked v]\nhide\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Setup v) and wait\n    Game On\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v) and wait\n    end\n    if <(EXIT) = [win]> then\n        Game - Win\n    else\n        Game - Die\n    end\nend\n\ndefine Game On\nset [x v] to [0]\nset [y v] to [0]\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [sx v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset size to (100) %\nset [ghost v] effect to (0)\nset [color v] effect to (0)\nshow\n\ndefine Tick\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < ((x) - (SCROLL X))>>>> then\n    change [sx v] by (-2)\nend\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > ((x) - (SCROLL X))>>>> then\n    change [sx v] by (2)\nend\nset [sx v] to ((sx) * (0.8))\nif <([abs v] of (sx) ) > [0.9]> then\n    change player x by (round (sx))\nend\nif <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y) - (SCROLL Y))>>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nchange [color v] effect by (0)\nif <(sy) > [-20]> then\n    change [sy v] by (-2)\nend\nchange player y by (sy)\nTest - Die\nset [scroll x v] to (x)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (10)))\nif <(SCROLL Y) < [0]> then\n    set [scroll y v] to [0]\nend\nPosition\nif <(y) < [-180]> then\n    set [exit v] to [die]\nend\n\ndefine change player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (penguins v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [in air v] to [0]\n    end\n    Position\n    set [sy v] to [0]\nend\n\ndefine Position\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\ndefine change player x by (sx)\nchange [x v] by (sx)\nPosition\nif <touching (penguins v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (penguins v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > ((y) - (SCROLL Y))>>>> then\n        if <(sx) > [0]> then\n            set [sx v] to [-20]\n        else\n            set [sx v] to [20]\n        end\n        set [in air v] to [0]\n    else\n        set [sx v] to [0]\n    end\n    repeat until <not <touching (penguins v)?>>\n        if <(sx) > [0]> then\n            change [x v] by (-1)\n        else\n            change [x v] by (1)\n        end\n        Position\n    end\nend\n\nchange [x v] by (-8)\n\nchange [x v] by (8)\n\ndefine Game - Die\nset [exit v] to []\nrepeat (3)\n    hide\n    wait (0.1) seconds\n    show\n    wait (0.1) seconds\nend\nhide\nwait (0.5) seconds\n\ndefine Test - Die\nif <touching (potatoes v)?> then\n    set [exit v] to [die]\nend\n\ndefine Game - Win\nrepeat (50)\n    point towards (doorknob v)\n    turn right (65) degrees\n    move ((distance to [doorknob v]) / (2)) steps\n    change size by (-1)\n    change [ghost v] effect by (2)\nend\nhide\nchange [level v] by (1)\nwait (1) seconds\n\ngo to [front v] layer\n\nset [scroll y v] to [0]\n\nforever\n\n@Penguins\n\nwhen I receive [the fact that the green flag was clicked v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    clone at x: [360] y: [0]\n    clone at x: [360] y: [0]\n    clone at x: [360] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2-1 v)\n        clone at x: [0] y: [325]\n        clone at x: [360] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3-1 v)\n            clone at x: [0] y: [360]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 4-1 v)\n                clone at x: [360] y: [0]\n                clone at x: [360] y: [0]\n                clone at x: [1] y: [150]\n                clone at x: [100] y: [150]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (level 5-1 v)\n                    clone at x: [360] y: [100]\n                else\n                    if <(LEVEL) = [6]> then\n                        switch costume to (level 6-1 v)\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nshow\n\nclone at x: [0] y: [360]\n\nclone at x: [360] y: [0]\nclone at x: [1] y: [150]\nclone at x: [100] y: [150]\n\nclone at x: [360] y: [100]\n\n@Potatoes\n\nwhen I receive [the fact that the green flag was clicked v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1-1 v)\n    clone at x: [360] y: [0]\n    clone at x: [360] y: [0]\n    clone at x: [360] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2-1 v)\n        clone at x: [0] y: [325]\n        clone at x: [360] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3-1 v)\n            clone at x: [0] y: [360]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 4-1 v)\n                clone at x: [360] y: [0]\n                clone at x: [360] y: [0]\n                clone at x: [1] y: [150]\n                clone at x: [100] y: [150]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (level 5-1 v)\n                    clone at x: [360] y: [100]\n                else\n                    if <(LEVEL) = [6]> then\n                        switch costume to (level 6-1 v)\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nshow\n\nclone at x: [360] y: [100]\n\n@Squares\n\nwhen flag clicked\n\nwhen I receive [the fact that the green flag was clicked v]\nhide\n\nshow\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (circle v)?> then\n    change [collected v] by (1)\n    if <(COLLECTED) = (COLLECTED MAX)> then\n        broadcast (Open Portal v)\n    end\n    delete this clone\nend\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [collected max v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (1 v)\n    clone at x: [168] y: [50]\n    clone at x: [370] y: [90]\n    clone at x: [617] y: [16]\n    clone at x: [773] y: [22]\n    clone at x: [807] y: [107]\n    clone at x: [885] y: [16]\n    clone at x: [1192] y: [75]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (1 v)\n        clone at x: [-28] y: [58]\n        clone at x: [-116] y: [104]\n        clone at x: [54] y: [143]\n        clone at x: [-126] y: [215]\n        clone at x: [28] y: [283]\n        clone at x: [-88] y: [322]\n        clone at x: [64] y: [372]\n        clone at x: [254] y: [408]\n        clone at x: [510] y: [443]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (1 v)\n            clone at x: [7] y: [228]\n            clone at x: [7] y: [435]\n            clone at x: [74] y: [636]\n            clone at x: [144] y: [58]\n            clone at x: [-158] y: [289]\n            clone at x: [147] y: [428]\n            clone at x: [-104] y: [914]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (1 v)\n                clone at x: [108] y: [56]\n                clone at x: [302] y: [70]\n                clone at x: [432] y: [70]\n                clone at x: [595] y: [95]\n                clone at x: [763] y: [130]\n                clone at x: [867] y: [442]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (1 v)\n                    clone at x: [296] y: [142]\n                    clone at x: [440] y: [142]\n                    clone at x: [601] y: [142]\n                    clone at x: [155] y: [-19]\n                else\n                end\n            end\n        end\n    end\nend\nset [x v] to [-9999999999999999999]\n\nclone at x: [-89] y: [-15]\n\ncreate clone of (_myself_ v)\nchange [x v] by (360)\nnext costume\ncreate clone of (_myself_ v)\nchange [x v] by (360)\nnext costume\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\nchange [collected max v] by (1)\ncreate clone of (_myself_ v)\n\nchange [x v] by (360)\nchange [y v] by (360)\n\nset [x v] to [-9999999999999999999]\n\nclone at x: [] y: []\n\nif <(LEVEL) = [2]> then\n    switch costume to (1 v)\n    clone at x: [76] y: [69]\nend\n\nwhen flag clicked\n\nshow\nforever\n    point in direction ((90) + ((Sin) * ([sin v] of ((1) * (timer)) )))\nend\n\nwhen flag clicked\n\nset [sin v] to [0]\nrepeat (10)\n    change [sin v] by (20)\n    wait (0.25) seconds\nend\n\nwhen I receive [the fact that the green flag was clicked v]\n\nwhen I start as a clone\nforever\n    next costume\n    wait (0.05) seconds\nend\n\npoint in direction (90)\n\nforever\n    set [time v] to (join (current [hour v]) (join [:] (join (current [minute v]) (join [:] (current [second v])))))\nend\n\nclone at x: [-94] y: [789]\n\nclone at x: [763] y: [130]\nclone at x: [867] y: [442]\n\nif <(LEVEL) = [6]> then\n    switch costume to (1 v)\n    clone at x: [266] y: [-29]\nend\n\nclone at x: [440] y: [142]\nclone at x: [601] y: [142]\nclone at x: [155] y: [-19]\n\n@Doorknob\n\nwhen flag clicked\n\nwhen I receive [the fact that the green flag was clicked v]\nhide\n\nshow\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<touching (circle v)?> and <(costume [name v]) = [open]>> then\n    set [exit v] to [win]\nend\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (closed v)\n    clone at x: [1373] y: [45]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (closed v)\n        clone at x: [728] y: [479]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (closed v)\n            clone at x: [119] y: [790]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (closed v)\n                clone at x: [997] y: [497]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (closed v)\n                    clone at x: [803] y: [177]\n                else\n                    set [x v] to [-9999999]\n                end\n            end\n        end\n    end\nend\n\nif <(LEVEL) = [6]> then\n    switch costume to (closed v)\n    clone at x: [470] y: [65]\nelse\n    if <(LEVEL) = [7]> then\n        switch costume to (closed v)\n        set [level v] to [1]\n    else\n        set [x v] to [-9999999]\n    end\nend\n\nset [x v] to [-9999999]\n\ncreate clone of (_myself_ v)\nchange [x v] by (360)\nnext costume\ncreate clone of (_myself_ v)\nchange [x v] by (360)\nnext costume\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\nchange [x v] by (360)\nchange [y v] by (360)\n\nwhen I receive [open portal v]\nswitch costume to (open v)\n\nclone at x: [728] y: [479]\n\nswitch costume to (closed v)\nclone at x: [1373] y: [45]\n\nclone at x: [1373] y: [45]\n\nset [x v] to [-9999999]\n\nclone at x: [470] y: [65]\nset [x v] to [-9999999]\n\n@Methane\n\ngo to [front v] layer\n\n@numbers n stuff\n\n@thmb\n\nwhen flag clicked\nhide\n\nshow\n\ngo to [front v] layer\n\n@no demonetize\n\ngo [backward v] (1) layers\n\nwhen flag clicked\nset [ghost v] effect to (100)\nwait (0) seconds\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (5) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\n@UltimateProfilePicPack\n\n@UPP\n\n
Welcome to Painted!\nTry using WASD, those arrow keys or mobile controls to start... woah, you can move around now! Hmmm... I think you need to collect all of those coins just scattered around to open the portals... and getting them can be dangerous, thanks to all that toxic, dark stuff everywhere! There are five portals you need to open in order to successfully complete the game!\n\nColor the heart and star- I mean PAINT them... (hahahah) for bonus points\n\nAll levels are indeed possible in both PC and mobile edition, but in mobile, the levels are considerably harder so choose wisely!\n\n---\n\nCREDITS:\n\nSong: Nostalgia 64 by Panda Eyes\nLink: https://www.youtube.com/watch?v=eNaE0HwPw8Q&ab_channel=OfficialPandaEyes\n\n40% code: @griffpatch\n60% code: @MastaMajec287\n100% art: @MastaMajec287\n100% sprite names: @MastaMajec287\n100% everything else: @MastaMajec287