Mario  platformer 10

Instructions: Check out my new game:\nhttps://scratch.mit.edu/projects/956564232\n\n=========================================\n\n2nd Place in @Brad-Games contest! Thank you so much!\n\nCheck out my new game I built using this engine:\nhttps://scratch.mit.edu/projects/551816517/\n\n=========================================\n\nWelcome to the Super Mario Platforming Engine! This is a short sample level of an upcoming game I am developing.\n\nCONTROLS\n*Press K to change the default controls\n-Left & Right Arrows to Move\n-Down to Crouch\n-Z to dash/grab objects and throw fireballs with a power-up\n-Up Arrow or X to Jump\n-C to change characters\n-Press Down on slopes to slide\n-Press left/right near a wall midair to wall slide; press X to wall jump\n\nFEATURES\n-A robust scrolling engine with horizontal and vertical movement\n-Parallax Scrolling\n-A close accurate representation of common Mario NPCs\n-Slopes (Gentle & Steep Versions)\n-NPC Respawning (Still WIP)\n-Semi-Solid Platforms\n-Coins & Collectibles\n\nI originally was going to make a full open-world game, but I spent more time in perfecting the engine than adding more levels. I guess I was too ambitious :-)\n\nCREDITS\n-Mario Fan Games Galaxy, The Spriters Resource, and SMBX for Sprites and Tilesets\n-The Sounds Resource, themushroomkingdom.net, and SMBX for sounds and effects\n-@griffpatch for the initial platforming engine\n-@brad-games for his contest and years of awesome Scratch content.\n-Nintendo for ownership of the Mario franchise and other related properties\n\nAND YOU FOR PLAYING!\n\nOver 1400 Clears Total! Thank you so much!

@Stage\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [toby fox - UNDERTALE Soundtrack - 06 Uwa!! So Temperate♫.mp3 v] until done\nend\n\nwhen I receive [3 v]\nrepeat (10)\n    change volume by (-10)\nend\n\n@Pi\n\nwhen flag clicked\nswitch costume to (costume1 v)\nset size to (50) %\npoint in direction (90)\nset [xv v] to [0]\nset [yv v] to [0]\ngo to x: (-200) y: (-100)\nwait (0.5) seconds\nforever\n    switch costume to (costume2 v)\n    if <key (right arrow v) pressed?> then\n        change [xv v] by (0.5)\n    end\n    if <key (left arrow v) pressed?> then\n        change [xv v] by (-0.5)\n    end\n    set [xv v] to ((xv) * (0.9))\n    change x by (xv)\n    if <touching color (#000000)?> then\n        change y by (1)\n        if <touching color (#000000)?> then\n            change y by (1)\n            if <touching color (#000000)?> then\n                change y by (1)\n                if <touching color (#000000)?> then\n                    change y by (1)\n                    if <touching color (#000000)?> then\n                        change y by (1)\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-1)\n    change y by (yv)\n    if <touching color (#000000)?> then\n        change y by ((yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <touching color (#000000)?> then\n        if <key (up arrow v) pressed?> then\n            start sound [lo gliss tabla v]\n            set [yv v] to [13]\n        end\n    end\n    change y by (1)\n    if <touching color (#000000)?> then\n        change x by ((xv) * (-1))\n        change y by (-5)\n        if <key (up arrow v) pressed?> then\n            if <(xv) > [0]> then\n                set [xv v] to [-5]\n            else\n                set [xv v] to [5]\n            end\n            set [yv v] to [10]\n        else\n            set [xv v] to [0]\n        end\n        if <touching color (#000000)?> then\n            change x by ((yv) * (-1))\n            set [yv v] to [0]\n        end\n    end\n    switch costume to (costume1 v)\nend\n\nwhen flag clicked\nforever\n    if <(y position) < [-164]> then\n        erase all\n        start sound [lo geh tabla v]\n        hide\n        point in direction (90)\n        set size to (50) %\n        point in direction (90)\n        set [xv v] to [0]\n        set [yv v] to [0]\n        go to x: (-200) y: (-100)\n        show\n    end\nend\n\nwhen flag clicked\nforever\n    if <(x position) > [239]> then\n        erase all\n        broadcast (next level v)\n        show\n        point in direction (90)\n        set size to (50) %\n        point in direction (90)\n        set [xv v] to [0]\n        set [yv v] to [0]\n        go to x: (-200) y: (-100)\n    end\nend\n\nwhen flag clicked\nforever\n    if <key (r v) pressed?> then\n        erase all\n        hide\n        point in direction (90)\n        set size to (50) %\n        point in direction (90)\n        set [xv v] to [0]\n        set [yv v] to [0]\n        go to x: (-200) y: (-100)\n        show\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (moving platform v)?> then\n        change x by (platform x)\n    end\nend\n\nwhen I receive [3 v]\nstop [other scripts in sprite v]\nglide (1) secs to x: (0) y: (0)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\npoint in direction (90)\nswitch costume to (costume3 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\nwhen flag clicked\nforever\n    turn right (xv) degrees\nend\n\n@level\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nnext costume\n\n@Pencil\n\nwhen flag clicked\npen up\nset [pencil v] to [not activated]\nerase all\nset pen size to (5)\nset pen color to (#000000)\ngo to x: (-21) y: (-71)\nset size to (50) %\nset [pencil v] to [not activated]\nforever\n    if <(pencil) = [not activated]> then\n        hide\n        wait until <([costume # v] of [level v]) = [4]>\n        show\n        wait until <touching (pi v)?>\n        set [pencil v] to [activated]\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        go to (mouse-pointer v)\n        repeat (10)\n            change [ghost v] effect by (-10)\n            go to (mouse-pointer v)\n        end\n        repeat until <([costume # v] of [level v]) = [5]>\n            go to (mouse-pointer v)\n        end\n        set [pencil v] to [usable]\n    end\nend\n\nwhen flag clicked\nforever\n    if <(pencil) = [not activated]> then\n        repeat (3)\n            change y by (3)\n            wait (0.01) seconds\n        end\n        repeat (2)\n            change y by (1)\n            wait (0.01) seconds\n        end\n        repeat (3)\n            change y by (-3)\n            wait (0.01) seconds\n        end\n        repeat (2)\n            change y by (-1)\n            wait (0.01) seconds\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(pencil) = [usable]> then\n        go to (mouse-pointer v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(pencil) = [usable]> then\n        if <mouse down?> then\n            if <(drawable) = [yes]> then\n                pen down\n            else\n                pen up\n            end\n        else\n            pen up\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nwhen I receive [next level v]\nif <([costume # v] of [level v]) = [21]> then\n    hide\n    erase all\n    stop [other scripts in sprite v]\nend\n\n@red sensor\n\nwhen flag clicked\nforever\n    go to (mouse-pointer v)\n    set [ghost v] effect to (100)\nend\n\nwhen flag clicked\nforever\n    if <touching color (#ff0000)?> then\n        set [drawable v] to [no]\n    else\n        set [drawable v] to [yes]\n    end\nend\n\n@obstcale\n\nwhen flag clicked\ngo [backward v] (100) layers\nforever\n    turn right (2) degrees\nend\n\nwhen flag clicked\nforever\n    if <([costume # v] of [level v]) = [20]> then\n        show\n    else\n        hide\n    end\nend\n\n@moving platform\n\nwhen flag clicked\ngo to x: (-30) y: (-125)\nhide\nforever\n    set [platform x v] to [5]\n    repeat (40)\n        change x by (5)\n    end\n    set [platform x v] to [0]\n    wait (1) seconds\n    set [platform x v] to [-5]\n    repeat (40)\n        change x by (-5)\n    end\n    set [platform x v] to [0]\n    wait (1) seconds\nend\n\nwhen flag clicked\nforever\n    if <([costume # v] of [level v]) = [16]> then\n        show\n    else\n        hide\n    end\nend\n\n@moving platform2\n\nwhen flag clicked\nforever\n    if <([costume # v] of [level v]) = [17]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\ngo to x: (41) y: (-7)\nforever\n    turn right (1) degrees\nend\n\n@text\n\nwhen flag clicked\nset [ghost v] effect to (100)\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\nwait (0.5) seconds\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nwhen I receive [next level v]\nif <([costume # v] of [level v]) > [10]> then\n    set [ghost v] effect to (100)\n    wait until <([costume # v] of [level v]) = [22]>\n    set [ghost v] effect to (100)\n    switch costume to (costume12 v)\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    wait (3) seconds\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    set [ghost v] effect to (100)\n    switch costume to (costume13 v)\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    wait (3) seconds\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    set [ghost v] effect to (100)\n    switch costume to (costume14 v)\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    wait (3) seconds\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    set [ghost v] effect to (100)\n    switch costume to (costume15 v)\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    wait (1.5) seconds\n    broadcast (3 v)\n    wait (1.5) seconds\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    set [ghost v] effect to (100)\n    switch costume to (costume16 v)\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    wait (3) seconds\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    set [ghost v] effect to (100)\n    switch costume to (costume17 v)\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\nelse\n    set [ghost v] effect to (100)\n    next costume\n    go to x: (0) y: (0)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\nend\n\n@thumbnail\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (0) y: (0)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\n@Sprite3\n\nwhen I receive [3 v]\nwait (14) seconds\nshow\nrepeat (5)\n    change [ghost v] effect by (-20)\nend\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo to x: (0) y: (0)\nhide\nforever\n    go to [front v] layer\nend\n\nwhen I receive [3 v]\nwait (14) seconds\nforever\n    play sound [toby fox - UNDERTALE Soundtrack - 06 Uwa!! So Temperate♫.mp3 v] until done\nend\n\n