Notebook 2 - Platformer #games 

Instructions: ★★★★★★★INSTRUCTIONS★★★★★★★\n\n- Arrow keys or WASD to move\n\n- Press Space when you have the Fire Flower to throw\n  fireballs\n\n- Press Z to spin, which can instant-kill Koopas\n\n- Jump into pipes to use them\n\n★★★★★★★★★★★★★★★★★★★★★★\n\nSuper Mario World for the SNES ported into Scratch as a fun platformer.\n\nThere is open space for you to run around, stomp on Koopa Troopas, and grab a Fire Flower. \n\nTo make the game much less annoying, enemies in the Overworld will not hurt you on contact. However, bosses can still hurt you.\n\nTo defeat Bowser, you need to hit him 20 times using a Fire Flower. Good luck!\n\n\n\n\n★★★★★★★★CHANGE LOG★★★★★★★★\n\n- Fixed glitch that allowed Bowser's fire flower to\nhurt Mario.\n\n- Fixed glitch that could despawn shells when being held at a level border\n\n★★★★★★★★★CREDITS★★★★★★★★★\n\nAll credit goes to Nintendo, the creator of Super Mario World\n\nMusic is from Super Mario World and Yoshi's Island\n\n#Games #Mario #Platformer\n\n

@Stage\n\nwhen I receive [flag v]\nwait (0.45) seconds\nforever\n    play sound [\[Event\] I am v] until done\nend\n\n@Player\n\nif <(X) > [0]> then\n    set [x v] to [5]\nelse\n    set [x v] to [-5]\nend\nset [y v] to [10]\n\nchange [playerx v] by \n\nchange [playerx v] by \n\nwhen I receive [flag v]\nset rotation style [left-right v]\nclear graphic effects\nset [playerx v] to (Checkpoint)\nset [x v] to [0]\npoint in direction (90)\nset size to (100) %\nshow\ngo to x: (0) y: (180)\nset [y v] to [0]\nset y to (180)\nforever\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        change [x v] by (1.2)\n        point in direction (90)\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        change [x v] by (-1.2)\n        point in direction (-90)\n    end\n    set [x v] to ((X) * (0.9))\n    change [playerx v] by (X)\n    if <touching (ground v)?> then\n        change y by (1)\n        if <touching (ground v)?> then\n            change y by (1)\n            if <touching (ground v)?> then\n                change y by (1)\n                if <touching (ground v)?> then\n                    change y by (1)\n                    if <touching (ground v)?> then\n                        change y by (1)\n                        if <touching (ground v)?> then\n                            change y by (-4)\n                            change [playerx v] by ((X) * (-2))\n                            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                if <(X) < [0]> then\n                                    set [x v] to [5]\n                                else\n                                    set [x v] to [-5]\n                                end\n                                set [y v] to [10]\n                            else\n                                set [x v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [y v] by (-1)\n    change y by (Y)\n    if <touching (ground v)?> then\n        change y by ((Y) * (-1))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <touching (ground v)?> then\n        if <<<key (up arrow v) pressed?> or <(U) = [1]>> or <key (w v) pressed?>> then\n            set [y v] to [12.92]\n        end\n    end\n    if <<(y position) < [-179]> or <touching (knifes >:\) v)?>> then\n        broadcast (die v)\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        repeat until <(round (PlayerX)) = (Checkpoint)>\n            change [playerx v] by (((Checkpoint) - (PlayerX)) / (7))\n        end\n        set [playerx v] to (Checkpoint)\n        point in direction (90)\n        set size to (100) %\n        show\n        go to x: (0) y: (180)\n        set [x v] to [0]\n        set [y v] to [0]\n        set y to (180)\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n    end\n    if <<[7505] < (PlayerX)> and <(y position) > [58]>> then\n        broadcast (end v)\n    end\nend\n\nwhen flag clicked\nset [first? v] to [0]\nset [checkpoint v] to [0]\nhide\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\ndelete this clone\n\n@Ground\n\nwhen I receive [flag v]\nclear graphic effects\nswitch costume to (costume2 v)\nrepeat (16)\n    next costume\n    create clone of (_myself_ v)\nend\n\nwhen I receive [end v]\nstop [other scripts in sprite v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\ndelete this clone\n\nwhen flag clicked\nhide\n\ndefine set x to (number1) (number2)\nforever\n    if <<(PlayerX) > ((number1) - (960))> or <((number1) + (960)) > (PlayerX)>> then\n        switch costume to (costume2 v)\n        go to x: ((0) - ((PlayerX) + ((0) - (number1)))) y: (0)\n        switch costume to (number2)\n        show\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nshow\nset x to (((costume [number v]) - (2)) * (480)) (costume [number v])\n\n@Knifes >:)\n\nwhen I receive [flag v]\nswitch costume to (costume1 v)\nset [spike x v] to [144]\nset [spike y v] to [-130]\ncreate clone of (_myself_ v)\nwait (0.00000001) seconds\nset [spike x v] to [705]\nset [spike y v] to ((-115) - (11))\ncreate clone of (_myself_ v)\nwait (0.0000001) seconds\nset [spike x v] to [2200]\nset [spike y v] to [-13]\ncreate clone of (_myself_ v)\nwait (0.0000001) seconds\nset [spike x v] to [2800]\nset [spike y v] to ((-118) - (11))\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [3065]\nset [spike y v] to ((-118) - (11))\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [3900]\nset [spike y v] to [-100]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [4975]\nset [spike y v] to [-120]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [5775]\nset [spike y v] to [-65]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [6150]\nset [spike y v] to [-60]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [6650]\nset [spike y v] to [-60]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [6780]\nset [spike y v] to [-60]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7170]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7190]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7210]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7230]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7250]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7270]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\nwait (0.00001) seconds\nset [spike x v] to [7290]\nset [spike y v] to [-70]\ncreate clone of (_myself_ v)\n\nwhen I receive [end v]\nhide\ndelete this clone\n\nwhen flag clicked\nhide\n\ndefine set x to (number1) (number2) set y to (number3)\ngo to [back v] layer\nforever\n    set [ghost v] effect to (0)\n    if <<(PlayerX) > ((number1) - (960))> or <((number1) + (960)) > (PlayerX)>> then\n        switch costume to (costume2 v)\n        go to x: ((0) - ((PlayerX) + ((0) - (number1)))) y: (number3)\n        switch costume to (number2)\n        show\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nset [badx v] to (Spike X)\nset [bady v] to (Spike Y)\nshow\nset x to (BadX) (costume [number v]) set y to (BadY)\n\n@Checkpoint\n\nwhen I start as a clone\nif <not <(First?) = [0]>> then\n    set [ghost v] effect to (100)\n    hide\nend\nforever\n    set y to (by)\n    if <touching (player v)?> then\n        change [first? v] by (1)\n        set [checkpoint v] to (bx)\n        repeat (10)\n            change [ghost v] effect by (10)\n            change y by (-1)\n        end\n        delete this clone\n    end\nend\n\nwhen I receive [flag v]\nswitch costume to (costume1 v)\nset [checkpointx v] to [3551]\nset [checkpointy v] to [148]\ncreate clone of (_myself_ v)\n\nwhen I receive [end v]\nset [checkpoint v] to [0]\nset [first? v] to [0]\nhide\ndelete this clone\n\nwhen flag clicked\nset [ghost v] effect to (0)\nhide\n\ndefine set x to (number1) (number2) set y to (number3)\ngo to [front v] layer\nforever\n    turn left (1) degrees\n    if <<(PlayerX) > ((number1) - (960))> or <((number1) + (960)) > (PlayerX)>> then\n        switch costume to (costume2 v)\n        set x to ((0) - ((PlayerX) + ((0) - (number1))))\n        switch costume to (number2)\n        show\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nset [bx v] to (CheckpointX)\nset [by v] to (CheckpointY)\nshow\nset x to (bx) (costume [number v]) set y to (by)\n\n@End Credits\n\nwhen I receive [end v]\nshow\nswitch costume to (costume2 v)\ngo to x: (0) y: (300)\nrepeat until <(y position) < [-480]>\n    switch costume to (costume2 v)\n    change y by (-0.5)\n    switch costume to (costume1 v)\nend\nswitch costume to (costume1 v)\n\nwhen flag clicked\nhide\n\n@Story\n\nwhen flag clicked\nshow\nswitch costume to (1 v)\nrepeat (4)\n    wait (1) seconds\n    start sound [Ting v]\n    next costume\nend\nwait (1) seconds\nstart sound [Ta Ting v]\nswitch costume to (6 v)\nwait (1) seconds\nhide\nbroadcast (flag v)\n\nwhen flag clicked\nforever\n    if <<(username) = [noodlebot743]> and <key (space v) pressed?>> then\n        stop [other scripts in sprite v]\n        hide\n        broadcast (flag v)\n    end\nend\n\n@TB\n\nwhen flag clicked\nforever\n    reset timer\n    hide\nend\n\nwhen [timer v] > (0.002)\ngo to x: (0) y: (200)\nset [brightness v] effect to (45)\nshow\nrepeat (45)\n    change y by (((0) - (y position)) / (7))\n    change [brightness v] effect by (-1)\nend\n\n