Clinger: A Platformer

Instructions: Reshared to fix bugs. How to cling: On mobile, click up high, as in jumping, and you can cling to a surface that is white. On a computer, hold W or the up arrow key to cling. If you like it, don’t forget to love, fave, and follow!\n\nSTORY:\n\nSomehow there is now a way to cling to the ceilings. You need to escape to get back normal gravity. Click R to reset (No way to reset on mobile). Use arrow keys or WASD keys. 20 levels total. Try to find the easter egg!\n\n#game #games #platformer #platformers #sfff #trending #clinger #uboiscratch #series #mobilefriendly #friendly #mobile #uniqueplatformer #unique #uniueplatformers\n#blocky

@Stage\n\n@Platform\n\nwhen flag clicked\nforever\n    if <(Level) < [20]> then\n        switch costume to (Level)\n    else\n        if <(Level) = [20]> then\n            set [timerstop v] to [1]\n            switch costume to (end v)\n            show variable [deaths v]\n            show variable [timer v]\n        end\n    end\nend\n\nwhen flag clicked\nset [death# v] to [0]\nset [timerstop v] to [0]\nforever\n    play sound [Monkeys Spinning Monkeys v] until done\nend\n\n@Player\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nrepeat (15)\n    change [ghost v] effect by (9)\n    change size by (-3)\nend\ndelete this clone\n\nwhen flag clicked\nhide variable [deaths v]\nhide variable [timer v]\nset [antibug v] to [0]\ngo to x: (-195) y: (-103)\nset [level v] to [1]\nshow\nset [x vol v] to [0]\nset [y vol v] to [0]\nforever\n    platform physics\nend\n\ndefine platform physics\nchange y by (y vol)\nif <<touching (platform v)?> or <touching (star v)?>> then\n    repeat ([abs v] of (y vol) )\n        if <<touching (platform v)?> or <touching (star v)?>> then\n            change y by ((-1) * (([abs v] of (y vol) ) / (y vol)))\n        end\n    end\n    set [y vol v] to [0]\n    if <<<key (up arrow v) pressed?> or <<key (space v) pressed?> or <key (w v) pressed?>>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        set [y vol v] to [12]\n    end\nelse\n    change [y vol v] by (-1)\nend\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > [10]>>>> then\n    change [x vol v] by (1)\nend\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <[-10] > (mouse x)>>> then\n    change [x vol v] by (-1)\nend\nchange x by (x vol)\nif <<touching (platform v)?> or <touching (star v)?>> then\n    repeat ([ceiling v] of ([abs v] of (x vol) ) )\n        if <<touching (platform v)?> or <touching (star v)?>> then\n            change x by ((-1) * (([abs v] of (x vol) ) / (x vol)))\n        end\n    end\n    set [x vol v] to [0]\nend\nset [x vol v] to ((x vol) * (0.9))\n\nwhen flag clicked\nforever\n    if <(x position) > [235]> then\n        go to x: (-195) y: (-103)\n        change [level v] by (1)\n        set [antibug v] to [0]\n        set [antiantibug v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching (kill v)?> and <not <(Level) = [1]>>> then\n        glide ((distance to [point v]) / (250)) secs to x: (-195) y: (-103)\n        change [death# v] by (1)\n    end\nend\n\nwhen [r v] key pressed\nset [antibug v] to [0]\nset [antiantibug v] to [1]\nglide ((distance to [point v]) / (250)) secs to x: (-195) y: (-103)\nset [antibug v] to [0]\nset [antiantibug v] to [0]\n\nwhen I receive [start v]\nset [level v] to [1]\n\nwhen I receive [star v]\nif <(clone?) = [0]> then\n    say [You found the easter egg! Comment "This is a normal comment..."] for (5) seconds\nend\n\nwhen flag clicked\nforever\n    set [x v] to (x position)\n    set [y v] to (y position)\nend\n\nwhen I receive [restart v]\nset [antibug v] to [0]\nset [antiantibug v] to [1]\nglide ((distance to [point v]) / (250)) secs to x: (-195) y: (-103)\nset [antibug v] to [0]\nset [antiantibug v] to [0]\n\nwhen flag clicked\nforever\n    if <(TimerStop) = [0]> then\n        set [timer v] to (timer)\n    end\nend\n\nwhen flag clicked\nforever\n    if <<(Death#) = [0]> or <[1] < (Death#)>> then\n        set [deaths v] to (join (Death#) [ 💀s])\n    else\n        set [deaths v] to [1  💀]\n    end\nend\n\nwhen flag clicked\nwait (1) seconds\nreset timer\n\nwhen I receive [nl v]\ngo to x: (-195) y: (-103)\nchange [level v] by (1)\n\nwhen flag clicked\nset [clone? v] to [0]\n\nwhen I start as a clone\nset [clone? v] to [1]\n\nwhen I receive [start v]\ngo to [front v] layer\n\nwhen I receive [fdasf v]\ngo to x: (-195) y: (-103)\n\n@Kill\n\n@Thumbnail\n\nwhen flag clicked\ngo to [front v] layer\nshow\nrepeat (100)\n    change [ghost v] effect by (1)\n    go to [front v] layer\nend\nbroadcast (start v)\nforever\n    change [ghost v] effect by (1)\n    go to [front v] layer\nend\n\n@Point\n\nwhen flag clicked\nhide\n\n@AttackerX\n\nwhen flag clicked\nforever\n    if <<<(Level) = [15]> or <(Level) = [14]>> and <(antiantibug) = [0]>> then\n        show\n    else\n        hide\n    end\n    if <(x position) < (x)> then\n        change [x vol v] by (1)\n    else\n        change [x vol v] by (-1)\n    end\n    if <<touching (player v)?> and <<(Level) = [15]> or <(Level) = [14]>>> then\n        broadcast (restart v)\n        set x to (217)\n    end\n    change x by (x vol)\n    if <touching (platform v)?> then\n        repeat ([ceiling v] of ([abs v] of (x vol) ) )\n            if <touching (platform v)?> then\n                change x by ((-1) * (([abs v] of (x vol) ) / (x vol)))\n            end\n        end\n        set [x vol v] to [0]\n    end\n    set [x vol v] to ((x vol) * (0.7))\n    if <<(antibug) = [0]> and <<(Level) = [14]> or <(Level) = [15]>>> then\n        set [antibug v] to [1]\n        set x to (217)\n    end\nend\n\n@Star\n\nwhen flag clicked\nforever\n    if <(Level) = [20]> then\n        show\n    else\n        hide\n    end\n    if <touching (player v)?> then\n        broadcast (star v)\n    end\nend\n\n@AttackerY\n\nwhen flag clicked\nforever\n    if <<(Level) = [18]> and <(antiantibug) = [0]>> then\n        show\n    else\n        hide\n    end\n    if <(y position) < (y)> then\n        change [y vol v] by (1)\n    else\n        change [y vol v] by (-1)\n    end\n    if <<touching (player v)?> and <(Level) = [18]>> then\n        broadcast (restart v)\n        set y to (-95)\n    end\n    change y by (y vol)\n    if <touching (platform v)?> then\n        repeat ([ceiling v] of ([abs v] of (y vol) ) )\n            if <touching (platform v)?> then\n                change y by ((-1) * (([abs v] of (y vol) ) / (y vol)))\n            end\n        end\n        set [y vol v] to [0]\n    end\n    set [y vol v] to ((y vol) * (0.7))\n    if <<(antibug) = [0]> and <(Level) = [18]>> then\n        set [antibug v] to [1]\n        set y to (-95)\n    end\nend\n\n@Blank\n\n@Sprite1\n\nwhen flag clicked\nforever\n    if <(distance to [mouse-pointer v]) < [30]> then\n        set [ghost v] effect to (20)\n    else\n        set [ghost v] effect to (70)\n    end\n    if <(Level) = [20]> then\n        hide\n    else\n        show\n    end\nend\n\nwhen this sprite clicked\nbroadcast (fdasf v)\nif <(Level) < [20]> then\n    change [level v] by (1)\nend\n\n@Report Detector\n\nwhen flag clicked\ngo to x: (5) y: (-53)\nforever\n    set [report v] to <<mouse down?> and <touching (mouse-pointer v)?>>\n    if <(report) = [true]> then\n        wait (0.2) seconds\n        if <(report) = [true]> then\n            change [☁ reported? v] by (1)\n            stop [this script v]\n        end\n    end\nend\n\n