Blueprint (3D Platformer)

Instructions: This project was shared on May 21st wich is my B-day!\n----------------------------------------\nWelcome to Grasslands A Platformer!\nYou can use Mobile, WASD or arrow keys to move!\nIf you get stuck somehow you can use R to reset!\nAll 21 levels are possible!\nHave fun and enjoy!!\n--------------------------------\nCredits!\nkenney.nl for the cave tiles\n@Lukas1410 for the cave spikes\n@timo1os for particles and trampolines!\n@shimon123 for the cave light\nTobu - Infectious is the music\n-------------------------------------------\nNotes: this took a solid 13 hours to make so pls like and fave and maybe follow me! if you do that would be awesome!!!\n\n-Fox Out\n\n

@Stage\n\nwhen flag clicked\nforever\n    play sound [yt1scom-After-You-Original-Mix-v v] until done\n    play sound [yt1scom-allem-iversom-habits-v72 v] until done\nend\n\n@Player\n\nwhen flag clicked\ngo to x: (-201) y: (-114)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nset [x v] to [1]\nforever\n    Platform Gravity: [-1] Jump Height: [13] Movement Speed: [2.5] Friction: [.7] Slopes: [8]\nend\n\ndefine Platform Gravity: (gravity) Jump Height: (jump height) Movement Speed: (side movement speed) Friction: (friction) Slopes: (slope)\nchange [y velocity v] by (gravity)\nchange y by (Y Velocity)\nif <touching (level v)?> then\n    repeat until <not <touching (level v)?>>\n        change y by ((([abs v] of (Y Velocity) ) / (Y Velocity)) * (-1))\n    end\n    set [y velocity v] to (<<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(([abs v] of (Y Velocity) ) / (Y Velocity)) = [-1]>> * (jump height))\nend\nset [x velocity v] to (((X Velocity) + ((<<key (a v) pressed?> or <key (left arrow v) pressed?>> * ((side movement speed) * (-1))) + (<<key (d v) pressed?> or <key (right arrow v) pressed?>> * (side movement speed)))) * (friction))\nchange x by (X Velocity)\nset [slope v] to [0]\nrepeat until <<(Slope) = ((slope) * (-1))> or <not <touching (level v)?>>>\n    change y by (1)\n    change [slope v] by (-1)\nend\nif <touching (level v)?> then\n    change y by (Slope)\n    repeat until <not <touching (level v)?>>\n        change x by ((([abs v] of (X Velocity) ) / (X Velocity)) * (-1))\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        go to x: (-201) y: (-114)\n        broadcast (Red v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (next level v)?> then\n        broadcast (Next level v)\n    end\nend\n\nwhen I receive [next level v]\nwait (0.5) seconds\ngo to x: (-201) y: (-114)\n\nwhen flag clicked\nforever\n    if <touching (bounce pad v)?> then\n        set [y velocity v] to [16.5]\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [show v]\nswitch costume to (costume2 v)\n\nwhen I receive [reset v]\ngo to x: (-201) y: (-114)\n\n@Shadow\n\nwhen flag clicked\nshow\nforever\n    go to (player v)\nend\n\nwhen flag clicked\nset [ghost v] effect to (50)\n\n@Spikes\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\n@Level\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [11]> then\n        broadcast (show v)\n    end\nend\n\n@Red border\n\nwhen flag clicked\nhide\n\nwhen I receive [red v]\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@Layer #1\n\nwhen flag clicked\nforever\n    go to x: ((mouse x) / (20)) y: ((mouse y) / (20))\nend\n\n@Layer #2\n\nwhen flag clicked\nforever\n    go to x: ((mouse x) / (35)) y: ((mouse y) / (35))\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\n\n@Next Level\n\nwhen I receive [next level v]\nhide\nwait (0.5) seconds\nshow\n\nwhen flag clicked\nshow\n\n@Shading\n\nwhen flag clicked\nset [ghost v] effect to (50)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\n@Stars\n\nwhen flag clicked\nset size to (100) %\ngo to [back v] layer\nforever\n    set y to (([y position v] of [player v]) * (-0.07))\n    set x to (([x position v] of [player v]) * (-0.07))\nend\n\n@Words\n\nwhen flag clicked\nset [ghost v] effect to (100)\nwait (0.5) seconds\nset [ghost v] effect to (90)\nwait (0) seconds\nset [ghost v] effect to (80)\nwait (0) seconds\nset [ghost v] effect to (70)\nwait (0) seconds\nset [ghost v] effect to (60)\nwait (0) seconds\nset [ghost v] effect to (50)\nwait (0) seconds\nset [ghost v] effect to (40)\nwait (0) seconds\nset [ghost v] effect to (30)\nwait (0) seconds\nset [ghost v] effect to (20)\nwait (0) seconds\nset [ghost v] effect to (10)\nwait (0) seconds\nset [ghost v] effect to (0)\nwait (3) seconds\nset [ghost v] effect to (0)\nwait (0) seconds\nset [ghost v] effect to (10)\nwait (0) seconds\nset [ghost v] effect to (20)\nwait (0) seconds\nset [ghost v] effect to (30)\nwait (0) seconds\nset [ghost v] effect to (40)\nwait (0) seconds\nset [ghost v] effect to (50)\nwait (0) seconds\nset [ghost v] effect to (60)\nwait (0) seconds\nset [ghost v] effect to (70)\nwait (0) seconds\nset [ghost v] effect to (80)\nwait (0) seconds\nset [ghost v] effect to (90)\nwait (0) seconds\nset [ghost v] effect to (100)\nwait (1) seconds\n\nwhen flag clicked\nforever\n    switch costume to (costume1 v)\n    wait (0.5) seconds\n    switch costume to (costume2 v)\n    wait (0.5) seconds\nend\n\n@Fade\n\nwhen flag clicked\nshow\nwait (5) seconds\nset [ghost v] effect to (25)\nwait (0) seconds\nset [ghost v] effect to (40)\nwait (0) seconds\nset [ghost v] effect to (70)\nwait (0) seconds\nset [ghost v] effect to (90)\nwait (0) seconds\nset [ghost v] effect to (100)\n\nwhen I receive [next level v]\nset [ghost v] effect to (90)\nwait (0) seconds\nset [ghost v] effect to (80)\nwait (0) seconds\nset [ghost v] effect to (70)\nwait (0) seconds\nset [ghost v] effect to (60)\nwait (0) seconds\nset [ghost v] effect to (50)\nwait (0) seconds\nset [ghost v] effect to (40)\nwait (0) seconds\nset [ghost v] effect to (30)\nwait (0) seconds\nset [ghost v] effect to (20)\nwait (0) seconds\nset [ghost v] effect to (10)\nwait (0) seconds\nset [ghost v] effect to (0)\nwait (1) seconds\nset [ghost v] effect to (0)\nwait (0) seconds\nchange [ghost v] effect by (10)\nwait (0) seconds\nset [ghost v] effect to (20)\nwait (0) seconds\nset [ghost v] effect to (30)\nwait (0) seconds\nset [ghost v] effect to (40)\nwait (0) seconds\nset [ghost v] effect to (50)\nwait (0) seconds\nset [ghost v] effect to (60)\nwait (0) seconds\nset [ghost v] effect to (70)\nwait (0) seconds\nset [ghost v] effect to (80)\nwait (0) seconds\nset [ghost v] effect to (90)\nwait (0) seconds\nset [ghost v] effect to (100)\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (0)\nwait (0) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\n    broadcast (Green Flag clicked v)\nend\nforever\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n@Secret pad\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        broadcast (Secret Found! v)\n    else\n        broadcast (hide v)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen I receive [secret found! v]\nif <<key (s v) pressed?> or <key (down arrow v) pressed?>> then\n    broadcast (Next Costume v)\nend\n\n@.\n\nwhen I receive [secret found! v]\nshow\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [next costume v]\nswitch costume to (costume2 v)\n\nwhen I receive [hide v]\nhide\n\n@Quote #1\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        switch costume to (costume12 v)\n    else\n        switch costume to (costume11 v)\n    end\nend\n\nwhen I receive [show v]\nshow\n\n@Quote #2\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        switch costume to (costume12 v)\n    else\n        switch costume to (costume11 v)\n    end\nend\n\nwhen I receive [show v]\nshow\n\n@Quote #3\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        switch costume to (costume12 v)\n    else\n        switch costume to (costume11 v)\n    end\nend\n\nwhen I receive [show v]\nshow\n\n@Quote #4\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        switch costume to (costume12 v)\n    else\n        switch costume to (costume11 v)\n    end\nend\n\nwhen I receive [show v]\nshow\n\n@Reset\n\nwhen this sprite clicked\nbroadcast (Reset v)\n\nwhen flag clicked\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (-5)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\n