:/ (A platformer)
@Stage\n\nwhen flag clicked\nswitch backdrop to (background v)\nif <(username) = [tbear2006]> then\n    if <key (space v) pressed?> then\n        broadcast (Thumbnail v) and wait\n    end\n    forever\n        if <key (n v) pressed?> then\n            change [stage v] by (1)\n            broadcast (Next stage v)\n            wait until <not <key (n v) pressed?>>\n        end\n        if <key (r v) pressed?> then\n            set [☁ :/ v] to [1]\n        end\n    end\nend\n\nwhen I receive [thumbnail v]\nswitch backdrop to (thumbnail? v)\n\n@Notes\n\n@Player I guess...\n\nwhen flag clicked\nif <(costume [name v]) = [:/2]> then\n    change [action counter v] by (1)\nelse\n    set [gravity v] to [0]\n    set [acceleration v] to [0]\n    if <(Stage) = [2]> then\n        set y to (-50)\n    else\n        switch costume to (:/ v)\n        set [stage v] to [0]\n        set [current text v] to [1]\n        set [realism v] to [False]\n        change [attempts v] by (1)\n        set [stop text v] to [False]\n        go to x: (0) y: (-50)\n        show\n        if < (Event) contains [Game Over]?> then\n            repeat until <(y position) = [-99]>\n                Gravity\n            end\n            if <(Event) = [Game Over2]> then\n                set [current text v] to ((item # of [\[Game Over\]] in [text v]) + (3))\n                Disp text [1] [1]\n                change [current text v] by (-2)\n            else\n                set [current text v] to (item # of [\[Game Over\]] in [text v])\n                Disp text [1] [2]\n                set [event v] to [Game Over2]\n            end\n            forever\n                wait (60) seconds\n                Disp text [0] [1]\n                change [current text v] by (-1)\n            end\n        else\n            set [event v] to [None]\n            broadcast (Start v)\n        end\n    end\n    forever\n        Gravity\n        Steep Slope?\n        Movement\n    end\nend\n\ndefine Gravity\nchange y by (Gravity)\nif <<(Gravity) > [-13]> and <not <<(Event) = [Chute]> and <(Gravity) < [-3]>>>> then\n    change [gravity v] by (-1)\nend\nchange y by (-1)\nif <<touching color (#35ff00)?> or <touching color (#0c0c0c)?>> then\n    repeat until <not <<touching color (#35ff00)?> or <touching color (#0c0c0c)?>>>\n        change y by (1)\n    end\n    set [on ground v] to [True]\n    set [gravity v] to [0]\nelse\n    change y by (1)\n    set [on ground v] to [False]\nend\nset [player y v] to (y position)\n\ndefine Movement\nif <(costume [number v]) = [1]> then\n    if <<<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(On ground) = [True]>> and <not <(Stage) = [2]>>> then\n        if <(Event) = [Jump]> then\n            set [gravity v] to [40]\n        else\n            set [gravity v] to [13]\n        end\n    end\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        if <(Acceleration) > [-10]> then\n            change [acceleration v] by (-1)\n        else\n            set [acceleration v] to [-10]\n        end\n    else\n        if <(Acceleration) < [0]> then\n            change [acceleration v] by (1)\n        end\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        if <(Acceleration) < [10]> then\n            change [acceleration v] by (1)\n        else\n            set [acceleration v] to [10]\n        end\n    else\n        if <(Acceleration) > [0]> then\n            change [acceleration v] by (-1)\n        end\n    end\n    if <<<touching (_edge_ v)?> and <(y position) < [-140]>> or <<<touching color (#000000)?> and <(Stage) > [1]>> and <not <touching (items v)?>>>> then\n        if <touching color (#000000)?> then\n            if <not <(Event) = [Hit]>> then\n                if <(Stage) = [2]> then\n                    set [event v] to [Hit]\n                end\n                if <(Stage) < [5]> then\n                    broadcast (Next stage v)\n                    stop [this script v]\n                end\n            end\n        end\n        broadcast (Reset v)\n    end\n    if <<(Stage) = [2]> and <touching (_edge_ v)?>> then\n        if <(x position) > [0]> then\n            set x to (-220)\n        else\n            set x to (220)\n        end\n    end\n    if <touching color (#58ff00)?> then\n        if <not <(Event) = [Tint]>> then\n            set [event v] to [Tint]\n            set [stop text v] to [True]\n        end\n    end\n    if <touching color (#ffb800)?> then\n        if <not <(Event) = [Burn]>> then\n            set [event v] to [Burn]\n            broadcast (BURN v)\n        end\n    end\nend\n\ndefine Steep Slope?\nset [counter v] to [0]\nchange x by (Acceleration)\nrepeat until <<(Counter) = [5]> or <not <<touching color (#35ff00)?> or <touching color (#0c0c0c)?>>>>\n    change y by (1)\n    change [counter v] by (1)\nend\nif <(Counter) = [5]> then\n    change x by ((0) - (Acceleration))\n    change y by (-5)\n    repeat until <not <<touching color (#35ff00)?> or <touching color (#0c0c0c)?>>>\n        if < (Acceleration) contains [-]?> then\n            change x by (1)\n        else\n            change x by (-1)\n        end\n    end\n    set [acceleration v] to [0]\nend\nset [player x v] to (x position)\n\ndefine Disp text (time) (repeat)\nif <(Stop text) = [False]> then\n    repeat (repeat)\n        repeat ((time) * (10))\n            wait (.1) seconds\n            if <(Stop text) = [True]> then\n                stop [this script v]\n            end\n        end\n        change [current text v] by (1)\n        set [text counter v] to [1]\n        set [text counter2 v] to (length of (item (Current text) of [text v]))\n        replace item (length of [text v]) of [text v] with []\n        repeat until <<(Text counter2) = [0]> or <key (s v) pressed?>>\n            if <(letter ((Text counter) - (2)) of (item (Current text) of [text v])) = [,]> then\n                wait (1) seconds\n            end\n            if <(Stop text) = [True]> then\n                stop [this script v]\n            end\n            say (item (length of [text v]) of [text v])\n            replace item (length of [text v]) of [text v] with (join (item (length of [text v]) of [text v]) (letter (Text counter) of (item (Current text) of [text v])))\n            change [text counter v] by (1)\n            change [text counter2 v] by (-1)\n            if <(costume [name v]) = [:/2]> then\n                start sound [Text2 v]\n            else\n                start sound [Text \(Wait .05\) v]\n            end\n        end\n        say (item (Current text) of [text v]) for (2) seconds\n    end\nend\n\nwhen I receive [start v]\nif <(Attempts) > [1]> then\n    set [current text v] to [15]\n    Disp text [1] [3]\n    Disp text [2] [3]\nelse\n    Disp text [1] [5]\n    wait until <(Action counter) > [0]>\n    Disp text [0] [1]\n    wait until <(Action counter) > [4]>\n    Disp text [3] [1]\n    wait until <(Action counter) > [9]>\n    Disp text [1] [1]\n    wait until <(Action counter) > [19]>\n    Disp text [2] [2]\n    wait until <(Action counter) > [29]>\n    Disp text [3] [1]\n    repeat (2)\n        Disp text [10] [1]\n    end\n    set [event v] to [Game Over]\n    broadcast (Game Over v)\nend\n\nwhen I receive [next stage v]\nstop [other scripts in sprite v]\nsay []\nbroadcast (Reset v)\nbroadcast (Movement v)\nif <(Stage) = [3]> then\n    broadcast (Text v)\nend\nText\n\nwhen I receive [reset v]\nchange [action counter v] by (1)\nswitch costume to (:/ v)\nif <(Stage) = [8]> then\n    go to x: (-170) y: (120)\nelse\n    go to x: (-170) y: (-50)\nend\nset [gravity v] to [0]\nset [acceleration v] to [0]\ngo to [front v] layer\n\nwhen I receive [splat v]\nif <touching (object things v)?> then\n    switch costume to (splat v)\n    set [acceleration v] to [0]\n    wait (.5) seconds\n    broadcast (Reset v)\nend\n\ndefine Text\nset [current text v] to (item # of (join (join [\[Stage ] (Stage)) [\]]) in [text v])\nif <(costume [name v]) = [:/2]> then\n    set [current text v] to (item # of [\[Click\]] in [text v])\n    if <(Action counter) = [0]> then\n        Disp text [0] [8]\n    else\n        change [current text v] by (8)\n        Disp text [0] [2]\n    end\nelse\n    if <(Stage) = [1]> then\n        Disp text [1] [1]\n        Disp text [3] [2]\n        Disp text [5] [2]\n        Disp text [10] [2]\n    else\n        if <(Stage) = [2]> then\n            if <(Event) = [Hit]> then\n                change [current text v] by (2)\n            else\n                Disp text [1] [1]\n                Disp text [5] [1]\n                wait until <(Event) = [Hit]>\n            end\n            Disp text [0] [1]\n            Disp text [3] [3]\n            wait until <key (q v) pressed?>\n            wait until <not <key (q v) pressed?>>\n            repeat until <key (q v) pressed?>\n                set [acceleration v] to [0]\n                set [gravity v] to [0]\n            end\n            Disp text [0] [1]\n            Disp text [15] [1]\n            Disp text [2] [3]\n            Disp text [15] [1]\n            Disp text [1] [1]\n            Disp text [3] [3]\n        else\n            if <(Stage) = [3]> then\n                if <(Event) = [Tint]> then\n                    change [current text v] by (7)\n                    Disp text [0] [1]\n                    Disp text [5] [5]\n                    wait (5) seconds\n                    set [lag? v] to [True]\n                    Disp text [0] [1]\n                    Disp text [15] [2]\n                    Disp text [1] [3]\n                    Disp text [3] [1]\n                else\n                    Disp text [0] [1]\n                    Disp text [3] [3]\n                    Disp text [5] [2]\n                    Disp text [1] [1]\n                end\n            else\n                if <(Stage) = [4]> then\n                    Disp text [1] [4]\n                else\n                    if <(Stage) = [5]> then\n                        if <(Event) = [Jump]> then\n                            Disp text [1] [3]\n                            Disp text [3] [2]\n                            Disp text [1] [2]\n                            set [action counter v] to [0]\n                            wait until <(Action counter) = [5]>\n                            Disp text [0] [1]\n                            wait until <(Action counter) = [15]>\n                            Disp text [0] [1]\n                            wait until <(Action counter) = [30]>\n                            Disp text [0] [1]\n                            wait until <(Action counter) = [50]>\n                            Disp text [0] [1]\n                            set [stage v] to [0]\n                            set [event v] to [None]\n                            broadcast (Next stage v)\n                        else\n                            change [current text v] by (11)\n                            Disp text [1] [12]\n                        end\n                    else\n                        if <(Stage) = [6]> then\n                            if <(Event) = [Roll]> then\n                                change [current text v] by (4)\n                                Disp text [0] [1]\n                                Disp text [1] [1]\n                                Disp text [10] [2]\n                            else\n                                Disp text [1] [4]\n                            end\n                        else\n                            if <(Stage) = [7]> then\n                                Disp text [1] [7]\n                            else\n                                if <(Stage) = [8]> then\n                                    set [action counter v] to [0]\n                                    wait until <(Action counter) = [2]>\n                                    Disp text [1] [4]\n                                    wait until <(Action counter) = [10]>\n                                    set [event v] to [Chute]\n                                    Disp text [1] [3]\n                                    Disp text [3] [2]\n                                else\n                                    if <(Stage) = [9]> then\n                                        if <(Event) = [Burn]> then\n                                            change [current text v] by (3)\n                                            Disp text [0] [4]\n                                            forever\n                                                set [current text v] to [127]\n                                                Disp text [0] [1]\n                                            end\n                                        else\n                                            Disp text [1] [3]\n                                        end\n                                    else\n                                        if <(Stage) = [10]> then\n                                            Disp text [1] [4]\n                                        else\n                                            if <(Stage) = [11]> then\n                                                Disp text [0] [1]\n                                                Disp text [1] [3]\n                                                set [event v] to [Lightning]\n                                                wait until <(Event) = [Win?]>\n                                                wait until <(On ground) = [True]>\n                                                stop [other scripts in sprite v]\n                                                broadcast (You... Win? v)\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    say []\n    set [stop text v] to [False]\nend\n\nwhen I receive [movement v]\nforever\n    Gravity\n    Steep Slope?\n    Movement\nend\n\ndefine Lag\nwait (.1) seconds\n\nwhen I receive [movement v]\nforever\n    if <(Lag?) = [True]> then\n        if <key (l v) pressed?> then\n            wait until <not <key (l v) pressed?>>\n            repeat until <key (l v) pressed?>\n                Lag\n            end\n            wait until <not <key (l v) pressed?>>\n        end\n    end\nend\n\nwhen I receive [text v]\nwait until <(Stop text) = [True]>\nwait until <(Stop text) = [False]>\nText\n\nwhen this sprite clicked\nif <(costume [name v]) = [:/]> then\n    set [action counter v] to [0]\n    switch costume to (:/2 v)\n    reset timer\n    stop [all v]\nend\n\nwhen [timer v] > (1)\nif <<(costume [name v]) = [:/2]> and <not <(☁ :/) = [1]>>> then\n    Text\nend\n\nwhen [timer v] > (1)\nif <<(costume [name v]) = [:/2]> and <not <(☁ :/) = [1]>>> then\n    forever\n        set [acceleration v] to [0]\n        set [gravity v] to [0]\n        if <touching (mouse-pointer v)?> then\n            set [ghost v] effect to (70)\n        else\n            clear graphic effects\n        end\n    end\nend\n\nwhen I receive [you... win? v]\nswitch costume to (... v)\nforever\n    set [acceleration v] to [0]\n    set [gravity v] to [0]\nend\n\nwhen I receive [hill v]\nset [stop text v] to [True]\nbroadcast (Text v)\n\nwhen I receive [burn v]\nset [stop text v] to [True]\nbroadcast (Text v)\n\nwhen I receive [thumbnail v]\nset [stage v] to [0]\nset [attempts v] to [0]\nset [lag? v] to [False]\nset [event v] to [None]\nswitch costume to (:/ v)\nhide\n\n@Stages\n\nwhen flag clicked\nif <(Stage) = [2]> then\n    Create stage\nend\ngo to x: (0) y: (0)\nshow\nswitch costume to ((Stage) + (1))\nforever\n    switch costume to ((Stage) + (1))\n    go to [front v] layer\n    if <<touching (object things v)?> and <<not <(Stage) = [6]>> and <(Stage) > [0]>>> then\n        broadcast (Fix v)\n    end\n    if <(☁ :/) = [1]> then\n        hide\n    end\nend\n\nwhen I receive [reset v]\nrepeat (1)\n    delete this clone\nend\nCreate stage\nrepeat (15)\n    go to x: (0) y: (0)\nend\n\ndefine Create stage\nif <not <(costume [name v]) = [Spike]>> then\n    go to x: (0) y: (0)\n    show\n    if <(Stage) = [2]> then\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I start as a clone\nswitch costume to (spike v)\nset [stages\(counter\) v] to [-126]\nset [stages\(counter\)2 v] to [-126]\nforever\n    go to x: (0) y: (Stages\(Counter\))\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        set [stages\(counter\)2 v] to (mouse y)\n        repeat until <not <mouse down?>>\n            if <((Stages\(Counter\)) + ((mouse y) - (Stages\(Counter\)2))) > (y position)> then\n                if <((Stages\(Counter\)) + ((mouse y) - (Stages\(Counter\)2))) > [95]> then\n                    set y to (94)\n                else\n                    set y to ((Stages\(Counter\)) + ((mouse y) - (Stages\(Counter\)2)))\n                end\n            end\n        end\n        set [stages\(counter\) v] to (y position)\n    end\nend\n\nwhen I receive [fix v]\nchange y by (-10)\nif <(y position) < [-39]> then\n    hide\nend\n\nwhen I receive [you... win? v]\nstop [other scripts in sprite v]\n\nwhen I receive [thumbnail v]\nhide\nstop [all v]\n\n@Object things\n\nwhen I receive [start v]\nset [action counter v] to [0]\nhide\nswitch costume to (yellow object v)\ngo to x: (150) y: (-30)\nset drag mode [draggable v]\nwait until <(Current text) > [5]>\nif <(distance to [player i guess... v]) < [150]> then\n    set x to (-150)\nend\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\nrepeat until <touching (player i guess... v)?>\n    if <(distance to [player i guess... v]) < [150]> then\n        if <(Player X) < (x position)> then\n            change x by (7)\n            if <touching (_edge_ v)?> then\n                change [action counter v] by (1)\n                set x to (-213)\n                glide (.5) secs to x: (-150) y: (y position)\n            end\n        else\n            change x by (-7)\n            if <touching (_edge_ v)?> then\n                change [action counter v] by (1)\n                set x to (213)\n                glide (.5) secs to x: (150) y: (y position)\n            end\n        end\n    end\nend\nchange [stage v] by (1)\nbroadcast (Next stage v)\ndelete this clone\n\nwhen I receive [reset v]\nif <(Stage) = [11]> then\n    hide\nelse\n    Reset [True]\nend\n\nwhen I receive [reset v]\nReset2\n\ndefine SPLAT\nset [gravity\(object\) v] to [0]\nrepeat until <<touching (_edge_ v)?> and <(y position) < [-163]>>\n    if <(Gravity\(Object\)) > [-15]> then\n        change [gravity\(object\) v] by (-1)\n    end\n    if <touching (player i guess... v)?> then\n        broadcast (SPLAT v)\n        wait until <not <touching (player i guess... v)?>>\n        repeat until <touching (player i guess... v)?>\n            change y by (-3)\n        end\n        stop [this script v]\n    else\n        change y by (Gravity\(Object\))\n    end\nend\nwait until <not <touching (stages v)?>>\nhide\n\ndefine Reset (wait?)\nswitch costume to ((Stage) + (1))\nif <(Stage) = [6]> then\n    go to x: (230) y: (133)\n    point in direction (90)\n    hide\n    wait until <(distance to [player i guess... v]) < [130]>\n    if <not <(Event) = [Roll]>> then\n        set [event v] to [Roll]\n        broadcast (HILL v)\n    end\n    stop [other scripts in sprite v]\n    show\n    repeat until <(y position) < [-97]>\n        if <touching (player i guess... v)?> then\n            set [acceleration v] to [0]\n            broadcast (SPLAT v)\n            stop [this script v]\n        end\n        turn right (15) degrees\n        change y by (-10)\n        change x by (-10)\n        if <(y position) < [-97]> then\n            set y to (-98)\n        end\n    end\n    wait until <touching (player i guess... v)?>\n    change [stage v] by (1)\n    broadcast (Next stage v)\nelse\n    go to x: (item (((Stage) * (2)) + (1)) of [locations v]) y: (item (((Stage) * (2)) + (2)) of [locations v])\n    set [stop v] to [0]\n    show\n    if <(wait?) = [True]> then\n        wait (1) seconds\n    end\n    forever\n        if <not <<(x position) = (item (((Stage) * (2)) + (1)) of [locations v])> or <(y position) = (item (((Stage) * (2)) + (2)) of [locations v])>>> then\n            set [stop v] to [1]\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n            SPLAT\n        end\n        if <<touching (player i guess... v)?> and <(Stop) = [0]>> then\n            change [stage v] by (1)\n            broadcast (Next stage v)\n            stop [this script v]\n        end\n    end\nend\n\nwhen flag clicked\nif <(Stage) = [2]> then\n    Reset [False]\nend\n\nwhen flag clicked\nif <(Stage) = [2]> then\n    Reset2\nend\n\ndefine Reset2\nforever\n    if <<(distance to [player i guess... v]) < [90]> and <((y position) - (Player Y)) > [65]>> then\n        wait (2) seconds\n        if <<(distance to [player i guess... v]) < [90]> and <((y position) - (Player Y)) > [65]>> then\n            stop [other scripts in sprite v]\n            SPLAT\n        end\n    end\nend\n\nwhen I receive [thumbnail v]\nhide\n\n@Messages\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\nforever\n    if <(☁ :/) = [1]> then\n        switch costume to (:/ v)\n        go to [front v] layer\n        show\n        stop [all v]\n    end\nend\n\nwhen I receive [game over v]\nswitch costume to (game over v)\ngo to [front v] layer\nshow\nstop [all v]\n\n@Items\n\nwhen flag clicked\nhide\n\nwhen I receive [next stage v]\nhide\nif <(Stage) = [4]> then\n    go to x: (0) y: (0)\n    switch costume to (sparkle v)\n    point in direction (90)\n    show\n    create clone of (_myself_ v)\n    switch costume to (jump boost v)\n    repeat until <touching (player i guess... v)?>\n        set y to ((([cos v] of (((timer) - (1)) * (200)) ) * (8)) - (30))\n    end\n    set [event v] to [Jump]\n    hide\nend\n\nwhen I start as a clone\nrepeat until <(Event) = [Jump]>\n    turn right (3) degrees\n    set y to ((([cos v] of (((timer) - (1)) * (200)) ) * (8)) - (30))\nend\ndelete this clone\n\n@Parachute\n\nwhen flag clicked\nhide\nwait until <(Event) = [Chute]>\nrepeat until <not <(Stage) = [8]>>\n    go to (player i guess... v)\n    if <(Gravity) < [0]> then\n        show\n    else\n        hide\n    end\nend\nset [event v] to [None]\nhide\n\n@Lightning\n\nwhen flag clicked\nhide\nwait until <(Event) = [Lightning]>\nwait (2) seconds\nset [event v] to [Win?]\n\nwhen I receive [you... win? v]\nset x to ((Player X) + (25))\nset y to (52)\ngo to [back v] layer\nshow\n\n@You... Win?\n\nwhen flag clicked\nhide\n\nwhen I receive [you... win? v]\nwait (2) seconds\ngo to [front v] layer\nswitch costume to (you... v)\ngo to x: (0) y: (0)\nshow\nwait (1) seconds\nswitch costume to (you... win? v)\nwait (3) seconds\nswitch costume to (you... win?2 v)\n\n
Huh... Guess this (WAS) on trending... Cool... why this project though, it's one of my worst projects... I literally uploaded it as a joke...\n\nIt's a platformer, what did you expect. However, I decided to over-complicate the code for just this project.\nHave fun\nbefore playing this project, it will drain the happiness out of you.\n\nFun fact, I shared this without testing it.\n\nMy hypothesis was right, this project is constantly getting views just because it has, "(A platformer)" in the title... I made sure to do my research on platformers and made the game simple, short, and mostly unoriginal. The only difference is that this one doesn't constantly ask you to like and favorite, so this SHOULD be slightly better. (Also it would be weird to like this) FUTURE ME: Nvm it was on trending...\n\n:/