The World || a 360° platformer #games #stories #all

Instructions: Join my 500 follower game contest for big prizes!\nhttps://scratch.mit.edu/projects/443017657/\n\nHi everyone! I'm back, with another game!\nThis is my first 360° platformer, so I hope you enjoy!\nControls:\n-Arrow keys to move\n-Avoid spikes and lava\n-Bounce pads propel you higher\n\nIf you enjoyed, don't forget to ❤️, ⭐, and follow @MXNHD!

@Stage\n\n@Blank\n\nwhen flag clicked\ngo to x: (0) y: (0)\n\n@Intro\n\ndefine Go to (x) (y) size (size) dir (dir) (cos)\npoint in direction (@cam.dir)\ngo to x: (0) y: (0)\nswitch costume to (hack small v)\nset size to ((@cam.z) * (size)) %\nswitch costume to (cos)\nmove (((x) - (@cam.x)) * (@cam.z)) steps\nturn left (90) degrees\nmove (((y) - (@cam.y)) * (@cam.z)) steps\nturn right (90) degrees\npoint in direction ((@cam.dir) + (dir))\n\nwhen I receive [intro v]\nhide\nset [@slow mo v] to [3]\nset [@cam.dir v] to [90]\nset [@cam.y v] to [0]\nset [@cam.x v] to [0]\nset [name.size v] to [0]\nstart sound [bruh v]\nwait (1) seconds\nset [intro2: clone.type v] to [Name]\ncreate clone of (_myself_ v)\nbroadcast (control v)\nbroadcast (dir v)\nbroadcast (▲ v)\nwait (0.87) seconds\n▲\nset [intro2: clone.type v] to [Background]\ncreate clone of (_myself_ v)\nforever\n    change [@cam.x v] by (((0) - (@cam.x)) / (9))\n    change [@cam.y v] by (((0) - (@cam.y)) / (9))\n    change [@cam.z v] by (((1) - (@cam.z)) / (9))\n    change [name.size v] by (((100) - (name.size)) / (9))\n    set [shk.y v] to ((shk.y) * (-0.7))\n    set [shk.x v] to ((shk.x) * (-0.7))\n    change [@cam.y v] by (shk.y)\n    change [@cam.x v] by (shk.x)\n    broadcast (tick v)\nend\n\nwhen I start as a clone\nif <(Intro2: clone.type) = [▲]> then\n    show\n    if <(Intro2: clone.id) = [1]> then\n        \n            Go to [0] ((▲.position.y) mod (390)) size [100] dir [0] [3]\n            switch costume to (▲ v)\n        end\n    end\n    if <(Intro2: clone.id) = [2]> then\n        \n            Go to [0] (((▲.position.y) mod (390)) - (390)) size [100] dir [0] [3]\n            switch costume to (▲ v)\n        end\n    end\nend\n\nwhen I receive [▲ v]\nwait (0.87) seconds\nset [▲.position.y v] to [0]\nforever\n    change [▲.position.y v] by ((10) / (@slow mo))\nend\n\ndefine ▲\nset [intro2: clone.type v] to [▲]\nset [intro2: clone.id v] to [1]\ncreate clone of (_myself_ v)\nset [intro2: clone.id v] to [2]\ncreate clone of (_myself_ v)\n\nwhen flag clicked\ngo to [back v] layer\nbroadcast (Intro v)\n\nwhen I receive [control v]\nwait (0.87) seconds\nshk (pick random (15) to (17))\nrepeat (5)\n    change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\nend\nrepeat (10)\n    change [@slow mo v] by (((3) - (@slow mo)) / (2))\nend\nwait (0.23) seconds\nrepeat (4)\n    shk (pick random (15) to (17))\n    repeat (5)\n        change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\n        change [@cam.z v] by (((2) - (@cam.z)) / (9))\n        change [name.size v] by (((115) - (name.size)) / (9))\n    end\n    repeat (10)\n        change [@slow mo v] by (((3) - (@slow mo)) / (2))\n    end\n    wait (0.23) seconds\nend\nrepeat (2)\n    shk (pick random (15) to (17))\n    repeat (5)\n        change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\n        change [@cam.z v] by (((2) - (@cam.z)) / (9))\n        change [name.size v] by (((115) - (name.size)) / (9))\n    end\n    repeat (2)\n        change [@slow mo v] by (((3) - (@slow mo)) / (2))\n    end\nend\nwait (0.2) seconds\nrepeat (5)\n    change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\n    change [@cam.z v] by (((2) - (@cam.z)) / (9))\n    change [name.size v] by (((115) - (name.size)) / (9))\nend\nrepeat (10)\n    change [@slow mo v] by (((3) - (@slow mo)) / (2))\nend\nwait (0.1) seconds\nrepeat (2)\n    shk (pick random (15) to (17))\n    repeat (5)\n        change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\n        change [@cam.z v] by (((2) - (@cam.z)) / (9))\n        change [name.size v] by (((115) - (name.size)) / (9))\n    end\n    repeat (2)\n        change [@slow mo v] by (((3) - (@slow mo)) / (2))\n    end\nend\nwait (0) seconds\nrepeat (2)\n    shk (pick random (15) to (17))\n    repeat (5)\n        change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\n        change [@cam.z v] by (((2) - (@cam.z)) / (9))\n        change [name.size v] by (((115) - (name.size)) / (9))\n    end\n    repeat (2)\n        change [@slow mo v] by (((3) - (@slow mo)) / (2))\n    end\nend\nrepeat (3)\n    shk (pick random (15) to (17))\n    repeat (5)\n        change [@slow mo v] by (((1) - (@slow mo)) / (1.2))\n        change [@cam.z v] by (((2) - (@cam.z)) / (9))\n        change [name.size v] by (((115) - (name.size)) / (9))\n    end\n    repeat (10)\n        change [@slow mo v] by (((3) - (@slow mo)) / (2))\n    end\n    wait (0.23) seconds\nend\ngo to [back v] layer\nbroadcast (Green flag v)\nbroadcast (startmusic v)\n\nwhen I receive [dir v]\nwait (0.87) seconds\nset [intro2: dir v] to [90]\nrepeat (185)\nrepeat (5)\nset [intro2: dir v] to [90]\nset [timer v] to [2]\nrepeat (30)\n    change [intro2: dir v] by (((450) - (Intro2: dir)) / (6))\nend\n\nwhen I receive [dir v]\nset [timer v] to [0]\n\n    set [@cam.dir v] to ((Intro2: dir) + (([sin v] of ((timer) * (250)) ) * (2)))\n    change [timer v] by ((0.2) / (@slow mo))\nend\n\ndefine shk (amount)\nif <(pick random (0) to (1)) = [1]> then\n    if <(pick random (0) to (1)) = [1]> then\n        change [shk.x v] by (() - (amount))\n    else\n        change [shk.x v] by (16)\n    end\nelse\n    if <(pick random (0) to (1)) = [1]> then\n        change [shk.y v] by (() - (amount))\n    else\n        change [shk.y v] by (amount)\n    end\nend\n\nif <(pick random (0) to (1)) = [1]> then\n    if <(pick random (0) to (1)) = [1]> then\n        set [shk.x v] to [-16]\n    else\n        set [shk.x v] to [16]\n    end\nelse\n    if <(pick random (0) to (1)) = [1]> then\n        set [shk.y v] to [-16]\n    else\n        set [shk.y v] to [16]\n    end\nend\n\nwhen I start as a clone\nif <(Intro2: clone.type) = [Background]> then\n    show\n    forever\n        set [ghost v] effect to (25)\n        go to [back v] layer\n        Go to [0] [0] size [100] dir [0] [4]\n    end\nend\n\nwhen I receive [intro v]\nwait (10.2) seconds\nshow\nset [intro2: x v] to [720]\nrepeat until <(round (Intro2: x)) = [0]>\n    Go to (Intro2: x) [0] size [100] dir [0] [5]\n    go to [front v] layer\n    change [intro2: x v] by (((0) - (Intro2: x)) / (6))\nend\nbroadcast (Clear all v)\nwait (1) seconds\nset [intro2: effects.ghost v] to [0]\nrepeat (20)\n    change [intro2: effects.ghost v] by (((100) - (Intro2: effects.ghost)) / (6))\n    set [ghost v] effect to (Intro2: effects.ghost)\nend\n\nwhen I start as a clone\nif <(Intro2: clone.type) = [Name]> then\n    show\n    go to [front v] layer\n    set [intro2: yv v] to [20]\n    set [name.size v] to [0]\n    repeat (3)\n        point in direction (90)\n        change [name.size v] by (Intro2: yv)\n        change [intro2: yv v] by (-1.35)\n        switch costume to (hack big v)\n        set size to (name.size) %\n        switch costume to (name v)\n    end\n    repeat until <(timer) > [1.85]>\n        go to x: (0) y: (0)\n        change [name.size v] by (Intro2: yv)\n        change [intro2: yv v] by (-1.35)\n        switch costume to (hack small v)\n        set size to (name.size) %\n        switch costume to (name v)\n    end\n    repeat (20)\n        Go to [0] [0] size (name.size) dir (([sin v] of ((timer) * (150)) ) * (2)) [6]\n        switch costume to (name v)\n        change [@cam.z v] by (((0.9) - (@cam.z)) / (15))\n    end\n    \n        Go to [0] [0] size (name.size) dir (([sin v] of ((timer) * (150)) ) * (2)) [6]\n        switch costume to (name v)\n    end\nend\n\nwhen I receive [clear all v]\ndelete this clone\n\nrepeat until <(timer) > [6]>\n    set [intro2: dir v] to [0]\n    Go to [0] [0] size (name.size) dir ((Intro2: dir) + (([sin v] of ((timer) * (150)) ) * (2))) [6]\nend\nrepeat (7)\n    change [intro2: dir v] by (((15) - (Intro2: dir)) / (1.8))\n    Go to [0] [0] size (name.size) dir ((Intro2: dir) + (([sin v] of ((timer) * (150)) ) * (2))) [6]\nend\nrepeat (7)\n    change [intro2: dir v] by (((-15) - (Intro2: dir)) / (1.8))\n    Go to [0] [0] size (name.size) dir ((Intro2: dir) + (([sin v] of ((timer) * (150)) ) * (2))) [6]\nend\n\nwhen I receive [tick v]\n\nwhen I receive [intro v]\nwait until <(timer) > [1.85]>\n\nwhen flag clicked\nforever\n    if <key (space v) pressed?> then\n        hide\n        stop [other scripts in sprite v]\n        stop all sounds\n        broadcast (Green flag v)\n        broadcast (startmusic v)\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nforever\n    if <key (space v) pressed?> then\n        hide\n        stop [other scripts in sprite v]\n        stop all sounds\n        broadcast (Green flag v)\n        broadcast (startmusic v)\n        delete this clone\n    end\nend\n\n@player\n\nwhen flag clicked\ngo to x: (0) y: (-1)\nhide\n\nwhen flag clicked\nforever\n    change y by (-5)\n    if <touching color (#25af00)?> then\n        broadcast (lvl3 v)\n    end\n    if <touching color (#013750)?> then\n        set [y vel v] to [-20]\n    end\n    if <touching color (#a7a7a7)?> then\n        broadcast (respawn v)\n    end\n    if <touching color (#c3c3c3)?> then\n        broadcast (respawn v)\n    end\n    if <touching color (#ff6464)?> then\n        broadcast (respawn v)\n    end\n    if <touching color (#44ff00)?> then\n        broadcast (lvl2 v)\n        set [lvl v] to [2]\n    end\n    change y by (5)\nend\n\nwhen I receive [green flag v]\nbroadcast (respawn v)\nswitch costume to (costume2 v)\nset [ghost v] effect to (0)\nshow\ngo to [front v] layer\ngo [backward v] (1) layers\n\nwhen [left arrow v] key pressed\nswitch costume to (costume3 v)\n\nwhen [right arrow v] key pressed\nswitch costume to (costume2 v)\n\n@Platform\n\ndefine SET HACK SIZE TO (number or text)\nswitch costume to (size hack v)\nset size to (number or text) %\nswitch costume to (costume2 v)\n\nwhen I receive [respawn v]\npoint in direction (90)\ngo to x: (-10) y: (-500)\nset [d vel v] to [0]\nset [y vel v] to [0]\n\nwhen flag clicked\nhide\n\nwhen I receive [win v]\npoint in direction (90)\ngo to x: (-10) y: (-500)\nset [d vel v] to [0]\nset [y vel v] to [0]\nstop all sounds\n\nwhen I receive [lvl2 v]\nswitch costume to (costume1 v)\nset [d vel v] to [0]\nset [y vel v] to [0]\nbroadcast (respawn v)\n\nwhen I receive [lvl3 v]\nswitch costume to (costume3 v)\nset [d vel v] to [0]\nset [y vel v] to [0]\nbroadcast (respawn v)\n\nwhen I receive [green flag v]\nswitch costume to (costume1 v)\ngo to [back v] layer\nshow\nSET HACK SIZE TO [200]\nforever\n    change [y vel v] by (1)\n    if <<key (right arrow v) pressed?> or <<(mouse x) > (x position)> and <mouse down?>>> then\n        change [d vel v] by (-0.2)\n    end\n    if <<key (left arrow v) pressed?> or <<(x position) > (mouse x)> and <mouse down?>>> then\n        change [d vel v] by (0.2)\n    end\n    set [d vel v] to ((d vel) * (0.8))\n    turn right (d vel) degrees\n    if <touching (player v)?> then\n        change y by (-1)\n        if <touching (player v)?> then\n            change y by (-1)\n            if <touching (player v)?> then\n                change y by (-1)\n                if <touching (player v)?> then\n                    change y by (-1)\n                    if <touching (player v)?> then\n                        change y by (4)\n                        turn right ((d vel) * (-1)) degrees\n                        set [d vel v] to [0]\n                    end\n                end\n            end\n        end\n    end\n    change y by (y vel)\n    if <touching (player v)?> then\n        change y by ((y vel) * (-1))\n        set [y vel v] to [0]\n    end\n    change y by (1)\n    if <touching (player v)?> then\n        if <<key (up arrow v) pressed?> or <<(mouse y) > [50]> and <mouse down?>>> then\n            set [y vel v] to [-12]\n        end\n    end\n    change y by (-1)\nend\n\nwhen I receive [lvl2 v]\nrepeat until <(costume [number v]) = [4]>\n    if <<(direction) < [141]> and <(direction) > [124]>> then\n        switch costume to (costume3 v)\n        set [lvl v] to [3]\n        set [d vel v] to [0]\n        set [y vel v] to [0]\n        broadcast (respawn v)\n    end\nend\n\n@ clouds\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nset size to (pick random (50) to (80)) %\nshow\ngo to [back v] layer\nset [ghost v] effect to (20)\nswitch costume to (pick random (1) to (4))\nif <(side) = [1]> then\n    go to x: (300) y: (pick random (150) to (100))\n    repeat until <(x position) < [-250]>\n        change x by (-1)\n    end\n    delete this clone\nend\nif <(side) = [2]> then\n    go to x: (-300) y: (pick random (150) to (100))\n    repeat until <(x position) > [250]>\n        change x by (1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nforever\n    go [backward v] (1) layers\n    go to [back v] layer\nend\n\nwhen I receive [green flag v]\nforever\n    set [side v] to (pick random (1) to (2))\n    create clone of (_myself_ v)\n    wait (pick random (2) to (3.5)) seconds\nend\n\n@Sprite2\n\nwhen flag clicked\nhide\n\nwhen I receive [green flag v]\nshow\ngo to [front v] layer\nforever\n    wait (pick random (3) to (12)) seconds\n    switch costume to (costume1 v)\n    go to x: (-81) y: (89)\n    show\n    go to [front v] layer\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (3)\n    end\n    repeat (5)\n        change y by (-1)\n    end\n    wait (2) seconds\n    repeat (15)\n        change y by (7)\n    end\n    hide\nend\n\nwhen I receive [startmusic v]\nforever\n    play sound [Tobu & Itro - Sunburst \[NCS Release\] v] until done\nend\n\n@Thumbnail\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    set [ghost v] effect to (100)\n    show\nend\n\n