A Decent Platformer || MOBILE CONTROLS
@Stage\n\n@i definitely dint backpack this \n\nwhen I receive [go v]\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nswitch costume to (costume2 v)\nset [ghost v] effect to (10)\nrepeat (18)\n    change [ghost v] effect by (5)\n    change size by (-4)\nend\ndelete this clone\n\ndefine Controls - Left and Right\nset [speed x v] to ((speed x) * (0.7))\nif <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    change [speed x v] by (-1.5)\nend\nif <<key (right arrow v) pressed?> or <<mouse down?> and <(x position) < (mouse x)>>> then\n    change [speed x v] by (1.5)\nend\n\ndefine Walk (direction) (speed) max step (step)\npoint in direction (direction)\nchange x by (speed)\nchange [frame v] by (([abs v] of (speed) ) / (8))\nset [improved2: slope v] to [0]\nGet Touching <(in platforrm) = [1]>\nrepeat until <<(Improved2: slope) = (step)> or <(touch) = [0]>>\n    change y by (1)\n    change [improved2: slope v] by (1)\n    Get Touching <(in platforrm) = [1]>\nend\nif <(Improved2: slope) = (step)> then\n    change x by ((0) - (speed))\n    change y by ((0) - (Improved2: slope))\n    if <<(touch) = [1]> and <(in platforrm) = [1]>> then\n        set [in platforrm v] to [2]\n        Walk (direction) (speed) max step (step)\n        if <(speed x) = [0]> then\n            set [in platforrm v] to [1]\n        end\n    else\n        if <<<<key (w v) pressed?> or <<mouse down?> and <(y position) < (mouse y)>>> and <([abs v] of (speed) ) > [3.5]>> and <(touch) > [1]>> then\n            set [speed x v] to ((-1.2) * (speed))\n            set [improved2: speed y v] to [11]\n            set [falling? v] to [6]\n            set [wall jump v] to [15]\n        else\n            set [speed x v] to [0]\n        end\n    end\nend\n\ndefine Controls - Jump, Crouch\nif <<key (up arrow v) pressed?> or <<mouse down?> and <(y position) < (mouse y)>>> then\n    if <<(jump key) = [0]> and <(falling?) < [3]>> then\n        set [improved2: speed y v] to [14]\n        set [falling? v] to [6]\n        start sound [Jump v]\n        set [jump key v] to [1]\n    end\nelse\n    set [jump key v] to [0]\nend\nif <key (down arrow v) pressed?> then\n    set [in platforrm v] to [2]\nend\n\ndefine Check Hit Ceiling / Floor <up?>\nGet Touching \nif <(touch) = [0]> then\n    set [in platforrm v] to [1]\nelse\n    if <<up?> and <(touch) = [1]>> then\n        set [in platforrm v] to [2]\n    end\nend\nrepeat until <(touch) < (in platforrm)>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    Get Touching <not <up?>>\n    set [improved2: speed y v] to [0]\nend\n\ndefine Get Touching <check platform?>\nif <touching (oh my gosh guys guys my screens shaking v)?> then\n    set [touch v] to [9]\nelse\n    if <<check platform?> and <touching (platforms v)?>> then\n        set [touch v] to [1]\n    else\n        set [touch v] to [0]\n    end\nend\n\ndefine Reset Level\nset size to (60) %\nset rotation style [left-right v]\ngo to x: (-232) y: (-91)\nreset timer\nshow\nset [speed x v] to [0]\nset [improved2: speed y v] to [0]\nset [falling? v] to [10]\nset [in platforrm v] to [1]\nset [frame v] to [0]\nset [wall jump v] to [0]\n\ndefine Set Costume\nif <(falling?) < [6]> then\n    if <(frame) = [0]> then\n        switch costume to (stand_1 v)\n    else\n        switch costume to ([floor v] of ((4) + ((frame) mod (8))) )\n    end\nelse\n    if <(Improved2: speed y) > [0]> then\n        switch costume to (jump_1 v)\n    else\n        switch costume to (fall_1 v)\n    end\nend\n\nwhen I receive [change me backdrop mate v]\nReset Level\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\nhide\nset [pressmahkeyss v] to [0]\nforever\n    set [x position v] to (x position)\nend\n\nwhen I receive [some next level sh v]\ngo to x: (-232) y: (-91)\n\nwhen I receive [go v]\nset [pressmahkeyss v] to [1]\nshow\nif <<(Title) > [0]> and <(Full) < [12]>> then\n    hide\n    stop [this script v]\nend\nReset Level\nif <(BossWait) = [0]> then\n    forever\n        switch costume to (hitbox v)\n        Controls - Jump, Crouch\n        Gravity\n        Check Hit Ceiling / Floor <(Improved2: speed y) > [0]>\n        if <<<(y position) < [-178]> or <touching (ooooolol v)?>> or <touching (sprite4 v)?>> then\n            Reset Level\n        end\n        \n            go to x: (-232) y: (-91)\n        end\n        if <(wall jump) > [0]> then\n            change [wall jump v] by (-1)\n        else\n            Controls - Left and Right\n        end\n        if <(speed x) < [-0.5]> then\n            Walk (-90) (speed x) max step (([ceiling v] of ([abs v] of ((speed x) * (1.3)) ) ) + (1))\n        else\n            if <(speed x) > [0.5]> then\n                Walk (90) (speed x) max step (([ceiling v] of ([abs v] of ((speed x) * (1.3)) ) ) + (1))\n            else\n                set [frame v] to [0]\n            end\n        end\n        Set Costume\n        broadcast (tick v) and wait\n    end\nend\n\nwhen I receive [go v]\nshow\nforever\n    if <<<(x position) = [236]> or <(x position) > [236]>> or <<(hehe) = [13]> and <(y position) = [180]>>> then\n        broadcast (Some next level sh v)\n    end\nend\n\ndefine Gravity\nif <<(Improved2: speed y) < [4]> or <<key (up arrow v) pressed?> or <<mouse down?> and <(y position) < (mouse y)>>>> then\n    change [improved2: speed y v] by (-1)\nelse\n    change [improved2: speed y v] by (-2)\nend\nchange y by (Improved2: speed y)\nchange [falling? v] by (1)\n\nwhen I receive [heh, this is not a copy of @pezao123's game... v]\nhide\n\nwhen [r v] key pressed\nif <(pressmahkeyss) = [1]> then\n    Reset Level\nend\n\nwhen backdrop switches to [backdrop2 v]\ngo to [back v] layer\nhide\n\n@credit to @--Explosion--\n\nwhen flag clicked\nhide\n\nwhen I receive [yeet v]\nhide\n\nwhen I receive [my saltrine sardines v]\nshow\nforever\n    point in direction ((([sin v] of ((timer) * (300)) ) * (5)) + (90))\nend\n\n@oh yes it took a long time to draw this\n\nwhen I receive [yeet v]\nwait (0.6) seconds\nhide\n\nwhen this sprite clicked\nstart sound [OOOOL v]\nset [color v] to [120]\nbroadcast (yeet v)\n\nwhen flag clicked\nhide\n\nwhen I receive [my saltrine sardines v]\nshow\n\n@oh my gosh guys guys my screens shaking\n\nwhen flag clicked\nset [bosswait v] to [0]\nhide\n\nwhen I receive [go v]\nswitch costume to (costume1 v)\nshow\nforever\n    set [hehe v] to (costume [number v])\nend\n\nwhen I receive [some next level sh v]\nnext costume\nif <(costume [number v]) = [16]> then\n    broadcast (this is the boss called kaj...... fudge v)\n    change [bosswait v] by (1)\nend\n\nwhen I receive [bacredit v]\nswitch costume to (costume17 v)\n\n@Sprite1\n\nwhen I receive [yeet v]\ngo to [front v] layer\ngo to x: (0) y: (345)\nshow\nset [speed v] to [-5]\nrepeat until <(y position) < [-338]>\n    change y by (speed)\n    change [speed v] by (-1)\nend\nhide\nbroadcast (Go v)\n\nwhen flag clicked\nplay sound [Drum v] until done\nhide\n\nwhen I receive [my saltrine sardines v]\nstop all sounds\nforever\n    play sound [Itro & Tobu - Cloud 9.mp3 v] until done\nend\n\n@Sprite2\n\nwhen flag clicked\nset size to (150) %\nshow\nswitch costume to (logo v)\ngo to x: (0) y: (0)\nwait (2) seconds\nswitch costume to (logo2 v)\nwait (2) seconds\nhide\nbroadcast (my saltrine sardines v)\n\n@OOOOOLOL\n\nwhen flag clicked\nset [hehe v] to [1]\nforever\n    switch costume to (hehe)\nend\n\nswitch costume to (1 v)\n\n@Dat Final Boss Who ate ur cookie\n\nwhen I receive [kingpunch v]\nif <touching (sprite1 v)?> then\n    if <([x position v] of [i definitely dint backpack this  v]) = [90]> then\n        set [xv v] to [10]\n        set [yv v] to [7]\n    end\n    if <([x position v] of [i definitely dint backpack this  v]) = [-90]> then\n        set [xv v] to [-10]\n        set [yv v] to [7]\n    end\nend\n\nwhen flag clicked\nhide\n\npoint in direction (90)\n\nwhen flag clicked\nforever\n    if <touching (sprite6 v)?> then\n        if <([direction v] of [sprite1 v]) = [90]> then\n            set [xv v] to [2]\n            set [yv v] to [5]\n        end\n        if <([direction v] of [sprite1 v]) = [-90]> then\n            set [xv v] to [-2]\n            set [yv v] to [5]\n        end\n    end\n    if <touching (arrow v)?> then\n        if <([direction v] of [arrow v]) = [-90]> then\n            set [xv v] to [-2]\n            set [yv v] to [7]\n        end\n        if <([direction v] of [arrow v]) = [90]> then\n            set [xv v] to [2]\n            set [yv v] to [7]\n        end\n    end\nend\n\nif <([direction v] of [sprite1 v]) = [-90]> then\n    set [xv v] to [1]\nend\nif <([direction v] of [sprite1 v]) = [90]> then\n    set [xv v] to [-1]\nend\n\nchange y by (10)\n\nwait (pick random (0) to (1)) seconds\n\nswitch costume to (costume2 v)\n\nwhen I receive [kinghit v]\nswitch costume to (costume2 v)\n\nwhen I receive [stickpunch v]\nif <touching (walkanimation v)?> then\n    broadcast (cpuhit v)\n    if <([direction v] of [walkanimation v]) = [90]> then\n        set [xv v] to [10]\n        set [yv v] to [7]\n    end\n    if <([direction v] of [walkanimation v]) = [-90]> then\n        set [xv v] to [-10]\n        set [yv v] to [7]\n    end\nend\n\nwhen I receive [this is the boss called kaj...... fudge v]\nswitch costume to (walk1 v)\ngo to x: (158) y: (-32)\nshow\nset rotation style [left-right v]\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    if on edge, bounce\n    if <(x position) < ([x position v] of [i definitely dint backpack this  v])> then\n        change [xv v] by (0.4)\n        broadcast (oof hot bakc v)\n        point in direction (90)\n    end\n    if <(x position) > ([x position v] of [i definitely dint backpack this  v])> then\n        change [xv v] by (-0.4)\n        broadcast (oof hot bakc v)\n        point in direction (-90)\n    end\n    change x by (xv)\n    set [xv v] to ((xv) * (0.9))\n    if  then\n        change y by (0.5)\n        if  then\n            change y by (0.5)\n            if  then\n                change y by (0.5)\n                if  then\n                    change y by (0.5)\n                    if  then\n                        change y by (0.5)\n                        if  then\n                            change y by (0.5)\n                            if  then\n                                change y by (0.5)\n                                if  then\n                                    change y by (0.5)\n                                    if <key (up arrow v) pressed?> then\n                                        if <[0] < (xv)> then\n                                            set [xv v] to [-7]\n                                        else\n                                            set [xv v] to [7]\n                                        end\n                                        set [yv v] to [10]\n                                    else\n                                        set [xv v] to ((xv) * (-1.3))\n                                        change x by (xv)\n                                        set [xv v] to [0]\n                                        change x by ((xv) / (5))\n                                    end\n                                    change y by (-4)\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-0.6)\n    change y by (yv)\n    if  then\n        set [yv v] to ((yv) * (-0.25))\n        change y by (yv)\n        if  then\n            change y by (yv)\n            if  then\n                change y by (yv)\n                if  then\n                    change y by (yv)\n                end\n            end\n        end\n    end\n    change y by (-1)\n    if  then\n        switch costume to (walk1 v)\n        set [yv v] to [8]\n    end\n    change y by (1)\n    if <<<(left) = [0]> and <(right) = [0]>> and <<(left) = [0]> and <(left) = [0]>>> then\n        switch costume to (walk1 v)\n    end\n    if <(costume [name v]) = [extra]> then\n        switch costume to (walk1 v)\n    end\n    if <<(leftclose) = [1]> or <(rightclose) = [1]>> then\n        broadcast (cpupunch v)\n    end\n    if  then\n        point in direction (-90)\n    end\n    if  then\n        point in direction (90)\n    end\n    if <touching (sprite4 v)?> then\n        hide\n        broadcast (bacredit v)\n    end\n    if <touching (i definitely dint backpack this  v)?> then\n        if <([x position v] of [i definitely dint backpack this  v]) > (x position)> then\n            change [xv v] by (-0.4)\n        else\n            change [xv v] by (0.4)\n        end\n    end\nend\n\nnext costume\n\nnext costume\n\nwhen I receive [oof hot bakc v]\nforever\n    next costume\n    wait (0.05) seconds\nend\n\nchange [kills v] by (1)\n\ngo to x: (0) y: (-45)\n\n@Sprite4\n\nwhen flag clicked\nhide\n\nwhen I receive [this is the boss called kaj...... fudge v]\nshow\ngo to x: (284) y: (-115)\n\n@End Credits\n\nwhen I receive [bacredit v]\nstop all sounds\nswitch backdrop to (backdrop2 v)\nshow\nswitch costume to (costume2 v)\ngo to x: (0) y: (-250)\nrepeat until <(y position) > [305]>\n    switch costume to (costume2 v)\n    change y by (0.5)\n    switch costume to (costume1 v)\nend\nswitch costume to (costume1 v)\n\nwhen flag clicked\nhide\n\n@Sprite3\n\nwhen flag clicked\nhide\n\n@Background stuff\n\nwhen I start as a clone\nshow\ngo to [back v] layer\npoint in direction (pick random (-70) to (-100))\ngo to x: (300) y: (pick random (-180) to (180))\nset size to (pick random (20) to (50)) %\nset [ghost v] effect to (pick random (90) to (95))\ngo to [back v] layer\nrepeat until <(x position) < [-220]>\n    move (10) steps\nend\ndelete this clone\n\nwhen I receive [go v]\nforever\n    hide\n    create clone of (_myself_ v)\nend\n\n
All my games have had meaning recently, and I wanted a break, so I made one for fun before my next serious one comes out.\nArrow keys, or Mobile Controls (easier to wall jump)\nAll credits in game. \n\nMusic is Cloud 9 - Itro and Tobu (thats what it says on the mp3 file, tell me in the comments if I'm wrong.\n\nMy challenge for you is when remixing this, upgrade the boss fight. \nRight now it's just to lead him into a kill portal. But, feel free to remix at will.\nNo advertising, although you can advertise your remix. \nAny hate, advertising, spam REPORT REPORT REPORT\nYeet