Paintsplash [Platformer]

Instructions: ⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓Paintsplash⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓\n\n-move with the arrow keys or WASD\n-pause the game with space\n\n-can you find the five hidden smiley faces?\n\nyou try to navigate through an invisible platformer. Fortunately you are a litle slime blob which is soaked in paint so you can mark your path and dont have to remember where to go. \nGood luck and have fun.\n\n\n⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓Paintspash⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓⁓\n\n-Bewegung mit den Pfeiltasten oder WASD\n-Anhalten des Spiels mit der Leertaste\n\n-kannst du die fünf versteckten Smileys finden?\n\nDu versuchst durch einen unsichtbaren Platformer zu navigieren. Zum Glück bist du ein kleiner Schleimblob, der in Farbe getränkt ist, so dass du deinen Weg markieren kannst und dich nicht daran erinnern musst, wohin du gehen musst. \nViel Glück und viel Spaß.\n\ntags:\n#platformer #Jump_’n’_Run #invisible #paint #blob #spikes #color #colour #splash 

@Stage\n\nwhen flag clicked\nforever\n    play sound [Chaoz Fantasy v] until done\nend\n\nwhen flag clicked\nforever\n    set volume to (Music) %\nend\n\n@Player\n\ndefine Move-in steps (steps)\nchange [falling v] by (1)\nset [costume v] to (costume [name v])\nrepeat (steps)\n    set [last value v] to (x position)\n    switch costume to (big v)\n    change x by ((X) / (steps))\n    switch costume to (player hitbox v)\n    if <touching (level v)?> then\n        switch costume to (big v)\n        set x to (Last Value)\n        set [x v] to [0]\n    end\n    set [x-pos v] to (x position)\n    set [last value v] to (y position)\n    switch costume to (big v)\n    change y by ((Y) / (steps))\n    switch costume to (player hitbox v)\n    if <([abs v] of (x-pos) ) > [260]> then\n        if <(x-pos) > [0]> then\n            set x to (260)\n        else\n            set x to (-260)\n        end\n    end\n    if <touching (level v)?> then\n        switch costume to (big v)\n        set y to (Last Value)\n        if <[1] < (Falling)> then\n            start sound (join [land] (pick random (1) to (2)))\n        end\n        if <(Y) < [0]> then\n            set [falling v] to [0]\n        end\n        set [y v] to [0]\n    end\n    switch costume to (big v)\n    set x to (x-pos)\nend\nswitch costume to (costume)\n\nwhen flag clicked\ngo to x: (-270) y: (-30)\npoint in direction (90)\nerase all\ngo to [front v] layer\nset [x v] to [20]\nset [y v] to [5]\nset [speed v] to [5]\nset [f=g{\frac{m_1m_2}{r^2}} v] to [-1]\nset [resist v] to [0.97]\nset [bounce v] to [0]\nforever\n    if <(mode) = [1]> then\n        pen down\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            if <(Falling) < [2]> then\n                if <(Y) = [0]> then\n                    start sound [jump v]\n                end\n                set [y v] to [13]\n            end\n        end\n        if <[6] > ([abs v] of (X) )> then\n            if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n                change [x v] by (-1.5)\n            end\n            if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n                change [x v] by (1.5)\n            end\n        end\n        if <key (space v) pressed?> then\n            set [mode v] to [2]\n        end\n        set [x v] to ((X) * (0.8))\n        change [y v] by (-1)\n        Move-in steps (([abs v] of (X) ) + ([abs v] of (Y) ))\n        if <(([abs v] of ((round ((X) * (100))) / (100)) ) + (([abs v] of (Y) ) - (1))) > [0]> then\n            set [id v] to [1]\n            create clone of (_myself_ v)\n        end\n        trail\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [1]> then\n    pen up\n    switch costume to (hitbox splash v)\n    point in direction (pick random (0) to (360))\n    move (pick random (20) to (30)) steps\n    point in direction (pick random (0) to (360))\n    if <touching (spikes v)?> then\n        set [color v] effect to (0)\n        change size by (50)\n    end\n    switch costume to (pick random (1) to (3))\n    change [brightness v] effect by (pick random (-10) to (10))\n    change [color v] effect by (pick random (-5) to (5))\n    if <<[100] > (distance to [player v])> and <(mode) = [1]>> then\n        stamp\n    end\n    delete this clone\nend\n\ndefine trail\nset rotation style [left-right v]\nif <not <(X) = [0]>> then\n    point in direction (X)\nend\nset [fisheye v] effect to ((Y) * (2.3))\nset [whirl v] effect to (([abs v] of (X) ) * (-13))\nif <touching (spikes v)?> then\n    set [color v] effect to (0)\nelse\n    set [color v] effect to ((COLOR) * (2))\nend\nset [costume v] to (costume [name v])\nswitch costume to (custom pen v)\nset size to (pick random (90) to (105)) %\nstamp\nswitch costume to (costume)\nset size to (100) %\nset [color v] effect to ((COLOR) * (2))\n\nwhen [space v] key pressed\n\ngo to x: (-186) y: (-50)\npoint in direction (90)\nerase all\npen down\ngo to [front v] layer\nset [x v] to [0]\nset [y v] to [0]\n\nwhen [r v] key pressed\npen up\ngo to x: (-186) y: (-50)\npoint in direction (90)\ngo to [front v] layer\nset [x v] to [0]\nset [y v] to [0]\npen down\n\nwhen flag clicked\nforever\n    if <(mode) = [1]> then\n        if <<touching (spikes v)?> or <(y position) < [-250]>> then\n            start sound [die v]\n            broadcast (death v)\n            set pen color to (#ff0000)\n            particles\n            change pen size by (50)\n            wait (0) seconds\n            pen up\n            clear graphic effects\n            set [color v] effect to ((COLOR) * (2))\n            go to x: (-270) y: (-40)\n            point in direction (90)\n            go to [front v] layer\n            set [x v] to [20]\n            set [y v] to [4]\n            change pen size by (-50)\n            pen down\n        end\n        if <(x position) > [260]> then\n            broadcast (next v) and wait\n            clear graphic effects\n            go to x: (-270) y: (-40)\n            point in direction (90)\n            erase all\n            pen down\n            go to [front v] layer\n            set [x v] to [20]\n            set [y v] to [5]\n        end\n    end\nend\n\nwhen flag clicked\nswitch costume to (player v)\nforever\n    if <(mode) = [1]> then\n        switch costume to (player_blink v)\n        wait (0.2) seconds\n        switch costume to (player v)\n        wait (pick random (5) to (20)) seconds\n    end\nend\n\nwhen flag clicked\nforever\n    if <(mode) = [1]> then\n        show\n        change [fisheye v] effect by (([sin v] of ((timer) * (200)) ) * (3))\n    else\n        set pen (color v) to (COLOR)\n        if <(mode) = [2]> then\n            show\n        else\n            hide\n        end\n    end\n    set volume to (Sound) %\nend\n\nwhen I start as a clone\nif <(ID) = [2]> then\n    show\n    switch costume to (join [particles] (pick random (2) to (4)))\n    set size to (100) %\n    set pen size to (20)\n    set [speed x v] to (pick random (-10) to (10))\n    set [speed y v] to (pick random (0) to (5))\n    change [speed y v] by (6)\n    forever\n        pen down\n        set [speed x v] to ((speed x) * (RESIST))\n        set [speed y v] to (((speed y) * (RESIST)) + (F=G{\frac{m_1m_2}{r^2}}))\n        turn right ((speed x) * (5)) degrees\n        set rotation style [all around v]\n        go to x: ((x position) + (speed x)) y: ((y position) + (speed y))\n        if <touching (_edge_ v)?> then\n            delete this clone\n        end\n        if <touching (level v)?> then\n            start sound [splash v]\n            set [id v] to [3]\n            create clone of (_myself_ v)\n            delete this clone\n        end\n    end\nend\n\ndefine particles\nset [id v] to [2]\nrepeat (pick random (3) to (5))\n    create clone of (_myself_ v)\nend\n\nset [f=g{\frac{m_1m_2}{r^2}} v] to [-1]\nset [resist v] to [0.97]\nset [bounce v] to [-0.5]\n\nwhen I start as a clone\nif <(ID) = [3]> then\n    set size to (100) %\n    if <(speed y) > [0]> then\n        point in direction ([atan v] of ((speed x) / (speed y)) )\n    else\n        point in direction (([atan v] of ((speed y) / (speed y)) ) - (180))\n    end\n    move (20) steps\n    point in direction (pick random (0) to (360))\n    switch costume to (pick random (1) to (3))\n    change [brightness v] effect by (pick random (-10) to (10))\n    change [color v] effect by (pick random (-5) to (5))\n    stamp\n    delete this clone\nend\n\n@Level\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nset [level v] to [1]\nforever\n    switch costume to (Level)\nend\n\nwhen I receive [next v]\nset [color v] effect to ((COLOR) * (2))\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat (10)\n    change [ghost v] effect by (5)\nend\nchange [level v] by (1)\n\n@Ngativ\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nforever\n    if <<(mode) = [1]> or <(mode) = [2]>> then\n        show\n        switch costume to (Level)\n    else\n        hide\n    end\nend\n\n@Spikes\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nforever\n    switch costume to (Level)\nend\n\nwhen I receive [next v]\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat (10)\n    change [ghost v] effect by (5)\nend\n\n@UI\n\nwhen I start as a clone\nif <(ID) = [10]> then\n    forever\n        if <<(mode) = [1]> or <(mode) = [2]>> then\n            show\n            set size to (120) %\n            go to x: (-187) y: (155)\n            switch costume to (costume1 v)\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [11]> then\n    forever\n        if <<(mode) = [1]> or <(mode) = [2]>> then\n            show\n            set size to (120) %\n            go to x: (-140) y: (155)\n            switch costume to (letter (1) of (Level))\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [12]> then\n    forever\n        if <<(mode) = [1]> or <(mode) = [2]>> then\n            show\n            set size to (120) %\n            go to x: (-128) y: (155)\n            switch costume to (letter (2) of (Level))\n        else\n            hide\n        end\n    end\nend\n\nwhen flag clicked\nerase all\nhide\ngo to [front v] layer\nsetup\n\nwhen I start as a clone\nif <(ID) = [1]> then\n    forever\n        if <(mode) = [0]> then\n            set [color v] effect to ((COLOR) * (2))\n            switch costume to (title v)\n            set size to (60) %\n            go to x: (0) y: (80)\n            show\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [2]> then\n    forever\n        if <(mode) = [0]> then\n            set [id v] to [0]\n            create clone of (_myself_ v)\n            set [id v] to [2]\n            show\n            go to x: (0) y: (0)\n            switch costume to (play v)\n            change size by ((((60) + (<touching (mouse-pointer v)?> * (10))) - (size)) / (5))\n            if <mouse down?> then\n                if <<touching (mouse-pointer v)?> and <(mouse) = [-]>> then\n                    start sound [click v]\n                    broadcast (play v)\n                    set [mode v] to [1]\n                    broadcast (spawn v)\n                    set [mouse v] to [true]\n                else\n                    set [mouse v] to [false]\n                end\n            else\n                set [mouse v] to [-]\n            end\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [3]> then\n    set [music v] to [100]\n    forever\n        if <<(mode) = [0]> or <(mode) = [2]>> then\n            set [id v] to [0]\n            create clone of (_myself_ v)\n            set [id v] to [3]\n            show\n            go to x: (-63) y: (-60)\n            change size by ((((60) + (<touching (mouse-pointer v)?> * (10))) - (size)) / (5))\n            switch costume to (join [Music] (Music))\n            if <mouse down?> then\n                if <<touching (mouse-pointer v)?> and <(mouse) = [-]>> then\n                    set [music v] to ((((Music) - (50)) * (-1)) + (50))\n                    switch costume to (join [Music] (Music))\n                    set [mouse v] to [false]\n                    start sound [click v]\n                else\n                    set [mouse v] to [false]\n                end\n            else\n                set [mouse v] to [-]\n            end\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [8]> then\n    forever\n        if <(mode) = [2]> then\n            set [id v] to [0]\n            create clone of (_myself_ v)\n            set [id v] to [8]\n            show\n            go to x: (0) y: (0)\n            change size by ((((60) + (<touching (mouse-pointer v)?> * (10))) - (size)) / (5))\n            switch costume to (home v)\n            if <mouse down?> then\n                if <<touching (mouse-pointer v)?> and <(mouse) = [-]>> then\n                    erase all\n                    set [mode v] to [0]\n                    set [mouse v] to [true]\n                    start sound [click v]\n                else\n                    set [mouse v] to [false]\n                end\n            else\n                set [mouse v] to [-]\n            end\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [9]> then\n    forever\n        if <(mode) = [2]> then\n            set [id v] to [0]\n            create clone of (_myself_ v)\n            set [id v] to [9]\n            show\n            go to x: (0) y: (60)\n            change size by ((((60) + (<touching (mouse-pointer v)?> * (10))) - (size)) / (5))\n            switch costume to (resume v)\n            if <mouse down?> then\n                if <<touching (mouse-pointer v)?> and <(mouse) = [-]>> then\n                    set [mode v] to [1]\n                    broadcast (spawn v)\n                    set [mouse v] to [true]\n                    start sound [click v]\n                else\n                    set [mouse v] to [false]\n                end\n            else\n                set [mouse v] to [-]\n            end\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [4]> then\n    set [sound v] to [100]\n    forever\n        if <<(mode) = [0]> or <(mode) = [2]>> then\n            set [id v] to [0]\n            create clone of (_myself_ v)\n            set [id v] to [4]\n            show\n            go to x: (63) y: (-60)\n            change size by ((((60) + (<touching (mouse-pointer v)?> * (10))) - (size)) / (5))\n            switch costume to (join [Sound] (Sound))\n            if <mouse down?> then\n                if <<touching (mouse-pointer v)?> and <(mouse) = [-]>> then\n                    set [sound v] to ((((Sound) - (50)) * (-1)) + (50))\n                    switch costume to (join [Sound] (Sound))\n                    set [mouse v] to [false]\n                    start sound [click v]\n                else\n                    set [mouse v] to [false]\n                end\n            else\n                set [mouse v] to [-]\n            end\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [5]> then\n    set [sound v] to [100]\n    forever\n        if <(mode) = [0]> then\n            set [id v] to [0]\n            create clone of (_myself_ v)\n            set [id v] to [5]\n            show\n            go to x: (0) y: (-120)\n            set size to (60) %\n            switch costume to (color v)\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [6]> then\n    set [sound v] to [100]\n    set x to (62)\n    set [color v] to ((((x position) + (61)) / (2.04)) + (10))\n    forever\n        if <(mode) = [0]> then\n            show\n            set y to (-120)\n            switch costume to (color slider v)\n            change size by ((((30) + (<touching (mouse-pointer v)?> * (10))) - (size)) / (5))\n            if <mouse down?> then\n                if <<touching (mouse-pointer v)?> and <(mouse) = [-]>> then\n                    start sound [click v]\n                    repeat until <not <mouse down?>>\n                        set [color v] to ((((x position) + (61)) / (2.04)) + (10))\n                        set x to (mouse x)\n                        if <(mouse x) > [92]> then\n                            set x to (92)\n                        end\n                        if <[-61] > (mouse x)> then\n                            set x to (-61)\n                        end\n                    end\n                    set [mouse v] to [true]\n                else\n                    set [mouse v] to [false]\n                end\n            else\n                set [mouse v] to [-]\n            end\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [7]> then\n    set [sound v] to [100]\n    forever\n        if <(mode) = [0]> then\n            show\n            go to x: (0) y: (-120)\n            set size to (60) %\n            switch costume to (preview v)\n            set [color v] effect to ((COLOR) * (2))\n        else\n            hide\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    go to [front v] layer\n    set volume to (Sound) %\nend\n\ndefine setup\nset [mode v] to [0]\nset [id v] to [0]\nrepeat (12)\n    change [id v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(ID) = [0]> then\n    go [backward v] (11) layers\n    if <(y position) = [-60]> then\n        switch costume to (shadow_smal v)\n    else\n        switch costume to (shadow_big v)\n    end\n    show\n    change size by (((size) - (60)) * (0.7))\n    change [ghost v] effect by (((size) - (60)) * (4))\n    wait (0) seconds\n    delete this clone\nend\n\n@Thumbnail\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n