Spring - A platformer #games #all #spring #art #music

Instructions: New platformer :D\n\nhttps://scratch.mit.edu/projects/460100109/\n\nwow, top loved then top remixed holy cow \n\nCredits to @-Scrumptious- for inspo and music code (I guess?)\n\nCheck out my test : @Ziyu3_Test\nReleased early on the first day of spring :DDD\nHELP I CAN"T ADD THIS TO ANY STUDIOS\nIM BACCKKKK\nwut dey TOP LOVED?????\nArrow keys or WASD to move\ntap if mobile\nInstructions in project\nSong is Bensound - Memories\nTurbowarp - https://turbowarp.org/500093891\n10 levels\nI really hope this gets on trending

@Stage\n\n@Player\n\ndefine Run physics (speed) (friction) (gravity) (jump height)\nchange [yvel v] by (gravity)\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [xvel v] by (speed)\nend\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n    change [xvel v] by ((speed) * (-1))\nend\nset [xvel v] to ((Xvel) * (friction))\nchange x by (Xvel)\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (-4)\n    change x by ((Xvel) * (-1))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        set [yvel v] to ((jump height) - (3.5))\n        if <[0] < (Xvel)> then\n            set [xvel v] to [-6]\n        else\n            set [xvel v] to [6]\n        end\n    else\n        set [xvel v] to [0]\n    end\nend\nchange y by (Yvel)\nif <touching (ground v)?> then\n    change y by ((Yvel) * (-1))\n    set [yvel v] to [0]\nend\nchange y by (-1)\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    if <touching (ground v)?> then\n        set [yvel v] to (jump height)\n    end\nend\nchange y by (1)\n\nwhen I receive [ded v]\nstart sound [Roblox Death Sound  OOF Sound Effect v]\ngo to x: (-180) y: (-50)\nset [ghost v] effect to (0)\n\nwhen I receive [next level v]\ngo to x: (-180) y: (-50)\n\nwhen flag clicked\nhide\n\nwhen I receive [respawn v]\ngo to x: (-180) y: (-50)\nset [ghost v] effect to (0)\n\nwhen flag clicked\nforever\n    if <<<(y position) < [-170]> or <touching (spikes v)?>> or <<touching (lava v)?> or <touching (saw v)?>>> then\n        play sound [Roblox Death Sound  OOF Sound Effect v] until done\n    end\nend\n\nwhen I receive [play v]\nswitch costume to (lolz)\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [level v] to [1]\ngo to x: (-180) y: (-50)\nforever\n    Run physics [0.9] [0.9] [-0.97] [15]\nend\n\nwhen I receive [play v]\nforever\n    if <[220] < (x position)> then\n        play sound [Ding Sound Effect v] until done\n    end\nend\n\nwhen I receive [play v]\nforever\n    if <touching (bouncy v)?> then\n        play sound [Mario_Jump_-_Gaming_Sound_Effect v] until done\n    end\nend\n\nwhen I receive [play v]\nforever\n    if <touching (wotar v)?> then\n        if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n            change [xvel v] by (-1.3)\n        end\n        if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n            change [xvel v] by (1.3)\n        end\n        if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>> then\n            change [yvel v] by (-1.3)\n        end\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            change [yvel v] by (1.3)\n        end\n        set [xvel v] to ((Xvel) * (0.81))\n        set [yvel v] to ((Yvel) * (0.81))\n        change [yvel v] by (((Yvel) / (14.9)) + (0.1))\n    end\n    set size to (175) %\nend\n\nwhen I receive [play v]\nshow\nforever\n    if <[220] < (x position)> then\n        broadcast (Next level v) and wait\n        wait until <not <[220] < (x position)>>\n    end\n    if <<<(y position) < [-170]> or <touching (spikes v)?>> or <<touching (lava v)?> or <touching (saw v)?>>> then\n        broadcast (Ded v) and wait\n    end\n    if <touching (bouncy v)?> then\n        set [yvel v] to [20]\n    end\n    if <touching (speedup v)?> then\n        set [xvel v] to [20]\n    end\n    if <touching (enemies v)?> then\n        if <(EnemyY) < ((y position) + (-15))> then\n            if <<(EnemyX) > ((x position) + (-20))> and <(EnemyX) < ((x position) + (20))>> then\n                set [yvel v] to [15]\n                broadcast (Enemy Ded v)\n                wait until <not <touching (enemies v)?>>\n            end\n        else\n            if <((y position) + (-103)) < (EnemyY)> then\n                broadcast (Ded v)\n                wait until <not <touching (enemies v)?>>\n            end\n        end\n    end\nend\n\nwhen I receive [play v]\nforever\n    go to [front v] layer\n    go [backward v] (1) layers\nend\n\nwhen I receive [play v]\nforever\n    switch costume to (lolz)\nend\n\n@Ground\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (5) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\nwhen flag clicked\nhide\n\n@Deco shadows\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [play v]\nshow\ngo to [front v] layer\ngo [backward v] (12) layers\nforever\n    set size to (150) %\n    go to x: (0) y: (0)\n    set [ghost v] effect to (50)\nend\n\n@Speedup\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\nforever\n    go to [front v] layer\n    go [backward v] (5) layers\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\n@Spikes\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (8) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\n@Ded\n\nwhen flag clicked\nhide\n\nwhen I receive [ded v]\ngo to [front v] layer\ngo [backward v] (1) layers\nshow\nset [ghost v] effect to (100)\nrepeat (5)\n    change [ghost v] effect by (-20)\nend\nwait (0.1) seconds\nrepeat (5)\n    change [ghost v] effect by (20)\nend\n\nwhen I receive [ded v]\ngo to [front v] layer\ngo [backward v] (1) layers\n\n@wotar\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (9) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\n    set y to (([sin v] of ((timer) * (100)) ) * (10))\nend\n\n@Bouncy\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (5) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\n@Lava\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (9) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\n    set y to (([sin v] of ((timer) * (100)) ) * (10))\nend\n\n@Why hello there\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nswitch costume to (costume1 v)\nshow\ngo to [front v] layer\ngo [backward v] (3) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\n@Deco\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [play v]\nshow\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (14) layers\nforever\n    set [level v] to (costume [number v])\n    go to x: (0) y: (0)\nend\n\n@Menu\n\nwhen flag clicked\nset size to (0) %\nhide\nswitch costume to (p1 v)\nCreate a clone of [Player skins]\nCreate a clone of [Right Arrow]\nCreate a clone of [Left arrow]\nCreate a clone of [Title]\nCreate a clone of [Button1]\nCreate a clone of [Button2]\nCreate a clone of [BG]\nCreate a clone of [Cover]\n\ndefine Create a clone of (#)\nset [id v] to (#)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(ID) = [Right Arrow]> then\n    set rotation style [left-right v]\n    point in direction (90)\n    switch costume to (costume2 v)\n    show\n    forever\n        go to x: (80) y: (20)\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (8)\n            change size by (((260) - (size)) / (5))\n            if <(Costumenum) < [7]> then\n                if <mouse down?> then\n                    broadcast (Right v)\n                    wait until <not <mouse down?>>\n                end\n            end\n        else\n            set [brightness v] effect to (0)\n            change size by (((200) - (size)) / (5))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [Player skins]> then\n    point in direction (90)\n    switch costume to (p1 v)\n    show\n    set size to (250) %\n    forever\n        go to x: (0) y: (20)\n        point in direction ((([sin v] of ((timer) * (100)) ) * (10)) + (90))\n        switch costume to (join [p] (Costumenum))\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (8)\n            change size by (((350) - (size)) / (5))\n        else\n            set [brightness v] effect to (0)\n            change size by (((300) - (size)) / (5))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [Left arrow]> then\n    set rotation style [left-right v]\n    point in direction (-90)\n    switch costume to (costume2 v)\n    show\n    forever\n        go to x: (-80) y: (20)\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (8)\n            change size by (((260) - (size)) / (5))\n            if <[1] < (Costumenum)> then\n                if <mouse down?> then\n                    broadcast (Left v)\n                    wait until <not <mouse down?>>\n                end\n            end\n        else\n            set [brightness v] effect to (0)\n            change size by (((200) - (size)) / (5))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [Title]> then\n    point in direction (90)\n    switch costume to (text v)\n    show\n    forever\n        point in direction ((([sin v] of ((timer) * (100)) ) * (4)) + (90))\n        go to x: (0) y: (120)\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (8)\n            change size by (((160) - (size)) / (5))\n        else\n            set [brightness v] effect to (0)\n            change size by (((125) - (size)) / (5))\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(ON menu?) = [0]> then\n        if <not <<(ID) = [Instructions]> or <<(ID) = [BG]> or <(ID) = [Cover]>>>> then\n            show\n            if <touching (mouse-pointer v)?> then\n                play sound [click v] until done\n                wait until <not <touching (mouse-pointer v)?>>\n            end\n        end\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nset [costumenum v] to [1]\nset [on menu? v] to [0]\n\nwhen I receive [olz v]\nset [on menu? v] to [1]\nwait (0) seconds\nbroadcast (Play v)\n\nwhen I receive [left v]\nchange [costumenum v] by (-1)\n\nwhen I receive [right v]\nchange [costumenum v] by (1)\n\nwhen I receive [play v]\nset [lolz v] to (Costumenum)\n\nwhen I start as a clone\nif <(ID) = [Button1]> then\n    point in direction (90)\n    switch costume to (button numero 1 v)\n    show\n    set size to (0) %\n    forever\n        go to x: (0) y: (-50)\n        point in direction ((([sin v] of ((timer) * (100)) ) * (2)) + (90))\n        switch costume to (button numero 1 v)\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (8)\n            change size by (((100) - (size)) / (5))\n            if <mouse down?> then\n                if <(again) = [0]> then\n                    broadcast (olz v)\n                    wait (0) seconds\n                    hide\n                    wait until <not <mouse down?>>\n                end\n            end\n        else\n            set [brightness v] effect to (0)\n            change size by (((80) - (size)) / (5))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(ID) = [Button2]> then\n    point in direction (90)\n    switch costume to (button numero 2 v)\n    show\n    set size to (0) %\n    forever\n        go to x: (0) y: (-95)\n        point in direction ((([sin v] of ((timer) * (100)) ) * (2)) + (90))\n        switch costume to (button numero 2 v)\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (8)\n            change size by (((100) - (size)) / (5))\n            if <mouse down?> then\n                broadcast (Istruction v)\n                wait until <not <mouse down?>>\n            end\n        else\n            set [brightness v] effect to (0)\n            change size by (((80) - (size)) / (5))\n        end\n    end\nend\n\nwhen flag clicked\nset [costumenum v] to [1]\n\nwhen I start as a clone\nif <(ID) = [BG]> then\n    point in direction (90)\n    go to x: (0) y: (0)\n    switch costume to (bg v)\n    show\n    set size to (100) %\n    go to [back v] layer\nend\n\nwhen I start as a clone\nif <(ID) = [Cover]> then\n    point in direction (90)\n    go to x: (0) y: (0)\n    set [ghost v] effect to (80)\n    switch costume to (costume1 v)\n    show\n    set size to (100) %\n    go to [back v] layer\n    go [forward v] (1) layers\nend\n\nwhen I start as a clone\nif <(ID) = [Instructions]> then\n    set [ghost v] effect to (100)\n    point in direction (90)\n    go to x: (0) y: (0)\n    switch costume to (costume3 v)\n    show\n    set size to (0) %\n    repeat (25)\n        change [ghost v] effect by (-5)\n        change size by (((135) - (size)) / (5))\n    end\n    wait until <<touching (mouse-pointer v)?> and <mouse down?>>\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    broadcast (Istruction done v)\n    delete this clone\nend\n\nwhen I receive [istruction v]\nset [again v] to [1]\nCreate a clone of [Instructions]\n\nwhen flag clicked\nset [again v] to [0]\n\nwhen I receive [istruction done v]\nset [again v] to [0]\n\n@Enemies\n\ndefine Clone physics\nchange x by (Xvel)\nchange [yvel v] by (-1)\nif <(x position) < ([x position v] of [player v])> then\n    change [xvel v] by (0.4)\nend\nif <([x position v] of [player v]) < (x position)> then\n    change [xvel v] by (-0.4)\nend\nset [xvel v] to ((Xvel) * (0.9))\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (1)\nend\nif <touching (ground v)?> then\n    change y by (-4)\n    change x by ((Xvel) * (-1))\n    set [xvel v] to ((0) - (Xvel))\nend\nchange y by (Yvel)\nif <touching (ground v)?> then\n    change y by ((Yvel) * (-1))\n    set [yvel v] to [0]\nend\nif <<(y position) < [-170]> or <touching (water v)?>> then\n    delete this clone\nend\n\ndefine Clone at x : (x) y : (y) Level : (level) Clones : (#)\nset [enemy x v] to (x)\nset [enemy y v] to (y)\nif <(Level) = (level)> then\n    go to x: (x) y: (y)\n    repeat (#)\n        create clone of (_myself_ v)\n        wait (0.2) seconds\n    end\n    wait until <not <(Level) = (level)>>\nend\n\nwhen I start as a clone\nshow\nset [player ded v] to [0]\nforever\n    go to [front v] layer\n    go [backward v] (1) layers\n    set size to (175) %\n    Clone physics\n    set [enemyx v] to (x position)\n    set [enemyy v] to (y position)\n    if <(player ded) = [1]> then\n        go to x: (Enemy X) y: (Enemy Y)\n        wait until <not <(player ded) = [1]>>\n    end\nend\n\nwhen I receive [play v]\nhide\nforever\n    Clone at x : [130] y : [20] Level : [5] Clones : [1]\n    Clone at x : [130] y : [20] Level : [7] Clones : [2]\n    Clone at x : [130] y : [20] Level : [10] Clones : [2]\nend\n\nwhen I receive [next level v]\ndelete this clone\n\nwhen flag clicked\nset [level v] to [1]\n\nwhen I receive [enemy ded v]\nstart sound [Jump v]\ndelete this clone\n\nwhen I receive [ded v]\nset [player ded v] to [1]\nwait (0) seconds\nset [player ded v] to [0]\n\n@Sound\n\nwhen this sprite clicked\nif <(Munsic on) = [0]> then\n    broadcast (Munsic v)\n    switch costume to (1 v)\nelse\n    set [munsic on v] to [0]\n    repeat (5)\n        change size by (1)\n    end\n    switch costume to (2 v)\nend\n\nwhen I receive [munsic v]\nset [munsic on v] to [1]\n\nwhen flag clicked\nset volume to (50) %\nset [munsic on v] to [1]\nhide\n\nwhen I receive [play v]\nset volume to (50) %\nswitch costume to (1 v)\npoint in direction (90)\nset size to (20) %\nshow\nforever\n    go to x: (-210) y: (-155)\n    go to [front v] layer\n    go [backward v] (2) layers\n    if <touching (mouse-pointer v)?> then\n        change size by (((80) - (size)) / (5))\n        set [brightness v] effect to (10)\n    else\n        change size by (((65) - (size)) / (5))\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [play v]\nforever\n    if <(Munsic on) = [0]> then\n        set volume to (0) %\n    else\n        set volume to (50) %\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <[1] = (ON menu?)> then\n        if <touching (mouse-pointer v)?> then\n            play sound [click v] until done\n            wait until <not <touching (mouse-pointer v)?>>\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    play sound [bensound-memories v] until done\nend\n\n@Skip\n\nwhen I receive [play v]\nswitch costume to (1 v)\npoint in direction (90)\nset size to (20) %\nshow\nforever\n    go to x: (-150) y: (-155)\n    go to [front v] layer\n    go [backward v] (2) layers\n    if <touching (mouse-pointer v)?> then\n        change size by (((80) - (size)) / (5))\n        set [brightness v] effect to (10)\n        if <mouse down?> then\n            if <(Level) < [11]> then\n                broadcast (Next level v)\n                wait until <not <mouse down?>>\n            end\n        end\n    else\n        change size by (((65) - (size)) / (5))\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nhide\nforever\n    if <[1] = (ON menu?)> then\n        if <touching (mouse-pointer v)?> then\n            play sound [click v] until done\n            wait until <not <touching (mouse-pointer v)?>>\n        end\n    end\nend\n\n@Sprite2\n\nwhen I receive [play v]\nforever\n    hide\n    create clone of (_myself_ v)\n    set [ghost v] effect to (50)\n    wait (pick random (2) to (3)) seconds\nend\n\nwhen I start as a clone\nswitch costume to (pick random (1) to (4))\nshow\nset [ghost v] effect to (50)\nset [random v] to (pick random (1) to (2))\nif <(Random) = [1]> then\n    go to x: (-240) y: (pick random (120) to (160))\n    repeat until <[230] < (x position)>\n        change x by (3)\n    end\nelse\n    go to x: (240) y: (pick random (120) to (160))\n    repeat until <(x position) < [-230]>\n        change x by (-3)\n    end\nend\nrepeat (5)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen flag clicked\nhide\n\n@Shadows\n\n@Sprite1\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (100)\nhide\nset size to (90) %\nforever\n    set [c v] to (timer)\nend\n\nwhen [timer v] > (C)\nshow\n\n