—[ Rotate ]— A Platformer                  #games #Capt_Boanerges #all
@Stage\n\n@Assests\n\nwhen flag clicked\nhide\n\n@Character\n\n@Ground\n\nif <key (space v) pressed?> then\n    wait until <not <key (space v) pressed?>>\nend\n\nswitch costume to (costume1 v)\n\nset [arg v] to [0]\n\nturn right (90) degrees\n\nwhen I receive [new level v]\npoint in direction (90)\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\nwait (0.04) seconds\nset [pause v] to [0]\n\nwhen flag clicked\nset [level v] to [1]\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\n@Character2\n\nwhen flag clicked\ngo to x: (20) y: (-15)\nset size to (100) %\nhide\nshow\nset [ghost v] effect to (0)\nset [takeoffspeed v] to [12]\nset [runspeed v] to [0]\nset [fallspeed v] to [0]\nforever\n    if <(pause) = [0]> then\n        change [fallspeed v] by (-1)\n        if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n            set [runspeed v] to [-5]\n        end\n        if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n            set [runspeed v] to [5]\n        end\n        if <not <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n            set [runspeed v] to [0]\n        end\n        change x by (runspeed)\n        if <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>> then\n            change y by (1)\n        end\n        if <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>> then\n            change y by (1)\n        end\n        if <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>> then\n            change y by (1)\n        end\n        if <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>> then\n            change y by (1)\n        end\n        if <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>> then\n            change y by (-4)\n            change x by ((runspeed) * (-1))\n        end\n        change y by (fallspeed)\n        if <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>> then\n            change y by ((fallspeed) - ((fallspeed) * (2)))\n            set [fallspeed v] to [0]\n        end\n        change y by (-1)\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <<touching (ground v)?> or <<touching (lazer cannon1 v)?> or <touching (lazer cannon 2 v)?>>>> then\n            set [fallspeed v] to [10]\n        end\n        change y by (1)\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <touching (water v)?>> then\n            set [fallspeed v] to [5]\n        end\n        if <touching (spikes v)?> then\n            starting position\n        end\n        if <touching (trampoline v)?> then\n            set [fallspeed v] to [15]\n        end\n        if <touching (portal2 v)?> then\n            change [level v] by (1)\n            start sound [Collect v]\n            broadcast (NEW LEVEL v)\n        end\n        if <<key (n v) pressed?> and <(tutorial) = [0]>> then\n            change [level v] by (1)\n            broadcast (NEW LEVEL v)\n            wait until <not <key (n v) pressed?>>\n        end\n        if <touching (_edge_ v)?> then\n            starting position\n        end\n        if <touching (lazer v)?> then\n            starting position\n        end\n        if <key (r v) pressed?> then\n            starting position\n        end\n        if <<<key (space v) pressed?> and <not <touching (shadow ground v)?>>> and <(dont rotate) = [0]>> then\n            set [pause v] to [1]\n            broadcast (turn v)\n            wait until <not <key (space v) pressed?>>\n        end\n    end\nend\n\ndefine starting position\nbroadcast (NEW LEVEL v)\nstart sound [A Elec Guitar v]\ngo to x: (0) y: (0)\n\nwhen I receive [new level v]\nif <(level) = [1]> then\n    go to x: (0) y: (0)\nend\nif <(level) = [2]> then\n    go to x: (-100) y: (-100)\nend\nif <(level) = [3]> then\n    go to x: (-100) y: (-80)\nend\nif <(level) = [4]> then\n    go to x: (-100) y: (-80)\nend\nif <(level) = [5]> then\n    go to x: (-100) y: (-100)\nend\nif <(level) = [6]> then\n    go to x: (-100) y: (-100)\nend\nif <(level) = [7]> then\n    go to x: (-120) y: (-130)\nend\nif <(level) = [8]> then\n    go to x: (-120) y: (0)\nend\nif <(level) = [9]> then\n    go to x: (-120) y: (-110)\nend\nif <(level) = [10]> then\n    go to x: (-120) y: (-140)\nend\nif <(level) = [11]> then\n    hide\n    stop [other scripts in sprite v]\n    broadcast (END v)\nend\n\nwhen I receive [up v]\nrepeat until <not <touching (ground v)?>>\n    change y by (1)\nend\n\nset [pause v] to [0]\n\n@Shadow Ground\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\n\npoint in direction (90)\n\nturn right (90) degrees\n\nwhen I receive [new level v]\npoint in direction (180)\n\nwhen flag clicked\nshow\ngo to [back v] layer\nset [ghost v] effect to (70)\ngo to x: (0) y: (0)\npoint in direction (180)\nforever\n    switch costume to (level)\nend\n\n@Trampoline\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\n\nwhen I receive [new level v]\npoint in direction (90)\n\nturn right (90) degrees\n\nwhen flag clicked\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\n@particles\n\nwhen flag clicked\nhide\nforever\n    create clone of (_myself_ v)\n    wait (0.1) seconds\nend\n\nwhen I start as a clone\nshow\ngo to [back v] layer\ngo to (random position v)\npoint in direction (pick random (0) to (359))\nset size to (50) %\nset [ghost v] effect to (100)\nset [particle speed v] to (pick random (0.1) to (0.5))\nrepeat (50)\n    change size by (1)\n    move (particle speed) steps\n    change [ghost v] effect by (-1)\nend\nrepeat (50)\n    change size by (-1)\n    move (particle speed) steps\n    change [ghost v] effect by (1)\nend\ndelete this clone\n\n@Spikes\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\n\nturn right (90) degrees\n\nwhen I receive [new level v]\npoint in direction (90)\n\nwhen flag clicked\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\n@Sprite1\n\n@Decor\n\nwhen flag clicked\nforever\n    switch costume to (level)\nend\n\n@Sprite2\n\nwhen flag clicked\nset [brightness v] effect to (0)\n\nwhen flag clicked\nset [ghost v] effect to (50)\ngo to [back v] layer\nshow\ngo to x: (0) y: (0)\ncreate clone of (_myself_ v)\nrepeat until <(x position) = [-460]>\n    change x by (-1)\nend\nhide\n\nforever\n\nwhen I start as a clone\nset [ghost v] effect to (50)\ngo to [back v] layer\ngo to x: (460) y: (0)\nrepeat until <(x position) = [0]>\n    change x by (-1)\nend\ncreate clone of (_myself_ v)\nrepeat until <(x position) = [-460]>\n    change x by (-1)\nend\ndelete this clone\n\nhide\n\n@Portal\n\nhide\n\nwhen flag clicked\n\nset [brightness v] effect to (0)\nforever\n    next costume\n    turn right (5) degrees\n    set [brightness v] effect to ((0) + ((10) * ([cos v] of (((timer) - (50)) * (300)) )))\nend\n\npoint in direction (90)\n\nset [color v] effect to (0)\n\nwhen I receive [turn v]\nset [portal x v] to (x position)\nset [portal y v] to (y position)\nif <<[0] > (portal x)> and <(portal y) > [0]>> then\n    set y to (portal y)\n    set x to ((portal x) * (-1))\nelse\n    if <<(portal x) > [0]> and <(portal y) > [0]>> then\n        set y to ((portal y) * (-1))\n        set x to (portal x)\n    else\n        if <<(portal x) > [0]> and <[0] > (portal y)>> then\n            set y to (portal y)\n            set x to ((portal x) * (-1))\n        else\n            if <<[0] > (portal x)> and <[0] > (portal y)>> then\n                set y to ((portal y) * (-1))\n                set x to (portal x)\n            end\n        end\n    end\nend\nset [portal x v] to (x position)\nset [portal y v] to (y position)\n\ngo to x: (-50) y: (60)\n\ngo to x: (50) y: (60)\n\nwhen I receive [new level v]\n\nif <(level) = [1]> then\n    go to x: (-50) y: (60)\n    show\nend\nif <(level) = [2]> then\n    go to x: (50) y: (-125)\n    show\nend\n\nhide\npoint in direction (90)\ngo to x: (-50) y: (60)\nshow\n\nset [level v] to [2]\n\nwhen flag clicked\n\nwhen I receive [turn v]\nturn right (90) degrees\n\n@Thumbnail\n\nwhen flag clicked\nforever\n    show\n    set [ghost v] effect to (100)\n    go to [front v] layer\nend\n\n@Portal2\n\nturn right (90) degrees\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\n\nwhen I receive [new level v]\npoint in direction (90)\n\nwhen flag clicked\nset [level v] to [1]\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\n    set [brightness v] effect to ((0) + ((10) * ([sin v] of (((timer) - (50)) * (200)) )))\nend\n\n@Tutorial\n\nwhen flag clicked\nforever\n    set [brightness v] effect to ((50) + ((10) * ([sin v] of (((timer) - (50)) * (200)) )))\n    set [ghost v] effect to ((50) + ((10) * ([sin v] of (((timer) - (50)) * (200)) )))\nend\n\nwhen flag clicked\nhide\nset [tutorial v] to [1]\nshow\nset [pause v] to [1]\nset [dont rotate v] to [0]\nswitch costume to (costume1 v)\nwait (2) seconds\nswitch costume to (costume2 v)\nwait until <key (space v) pressed?>\nwait until <not <key (space v) pressed?>>\nset [pause v] to [0]\nswitch costume to (costume3 v)\nset [dont rotate v] to [1]\nwait until <touching (character2 v)?>\nswitch costume to (costume4 v)\nset [dont rotate v] to [0]\nset [pause v] to [1]\nwait (0.5) seconds\nset [pause v] to [0]\n\nwait (1) seconds\n\nbroadcast (UP v)\n\nwait until <key (space v) pressed?>\n\nset [pause v] to [0]\n\nset [tutorial v] to [0]\n\nwhen I receive [turn v]\nwait (0.4) seconds\nswitch costume to (costume5 v)\nset [pause v] to [1]\nwait (4) seconds\nhide\nset [tutorial v] to [0]\nset [tutorial v] to [0]\n\n@Lava\n\ndefine spawn lava\nset pen size to (0)\nif <(level) = [3]> then\n    erase all\n    go to x: (0) y: (0)\n    show\n    repeat until <<touching (ground v)?> or <touching (_edge_ v)?>>\n        change y by (-5)\n        stamp\n    end\n    go to x: (0) y: (0)\nend\n\nhide\n\nif <(lava clone type) = [0]> then\n    repeat (45)\n        turn right (2) degrees\n        spawn lava\n    end\nend\n\nspawn lava\npoint in direction (90)\n\nerase all\nset [level v] to [1]\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nset [lava clone type v] to [0]\nforever\n    switch costume to (level)\nend\n\nerase all\n\nwhen flag clicked\n\nwhen I receive [turn v]\n\nwhen I receive [new level v]\n\n@Lazer Cannon1\n\ndefine up/down\nif <touching (ground v)?> then\n    repeat until <not <touching (ground v)?>>\n        change y by (1)\n    end\nelse\n    repeat until <touching (ground v)?>\n        change y by (-1)\n    end\nend\n\nup/down\n\ngo to x: (64) y: (-115)\nif <(level) = [4]> then\n    set [show lazer v] to [1]\n    go to x: (-166) y: (65)\nend\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\nwait (0.04) seconds\nset [pause v] to [0]\n\nwhen I receive [new level v]\npoint in direction (90)\nif <(level) = [3]> then\n    set [show lazer v] to [1]\nend\n\nwhen flag clicked\nset [show lazer v] to [0]\nset [level v] to [1]\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\n@Lazer Cannon 2\n\ndefine up/down\nif <touching (ground v)?> then\n    repeat until <not <touching (ground v)?>>\n        change y by (1)\n    end\nelse\n    repeat until <touching (ground v)?>\n        change y by (-1)\n    end\nend\n\nup/down\n\nif <(level) = [3]> then\n    go to x: (64) y: (141)\nend\nif <(level) = [4]> then\n    go to x: (166) y: (64)\nend\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\nwait (0.04) seconds\nset [pause v] to [0]\n\nwhen I receive [new level v]\npoint in direction (90)\n\nwhen flag clicked\nset [level v] to [1]\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\n@lazer\n\nbroadcast (lets go v)\n\nwhen I receive [lets go v]\nshow\n\nwhen I receive [lets hide v]\nhide\n\nwhen flag clicked\nset rotation style [all around v]\n\nwhen I start as a clone\n\nwhen flag clicked\nset [ghost v] effect to (0)\nset [brightness v] effect to (0)\nforever\n    show\n    repeat (10)\n        change [ghost v] effect by (10)\n        change [brightness v] effect by (5)\n    end\n    hide\n    wait (1) seconds\n    show\n    if <<(costume [number v]) > [2]> and <(costume [number v]) < [10]>> then\n        start sound [Electric Shock Zap-SoundBible v]\n    end\n    repeat (10)\n        change [ghost v] effect by (-10)\n        change [brightness v] effect by (-5)\n    end\nend\n\nwhen I receive [lazers v]\nforever\n    if <(show lazer) = [1]> then\n        set pen color to (#860000)\n        set pen size to (0.5)\n        start sound [sf_desintegration v]\n        repeat (30)\n            erase all\n            change pen size by (0.5)\n            pen down\n            go to (lazer cannon1 v)\n            go to (lazer cannon 2 v)\n            if <(show lazer) = [0]> then\n                broadcast (lazers v)\n                stop [this script v]\n            end\n        end\n        start sound [Electric Shock Zap-SoundBible v]\n        pen down\n        set pen size to (10)\n        set pen color to (#ff0000)\n        go to (lazer cannon1 v)\n        go to (lazer cannon 2 v)\n        repeat (50)\n            change [arg v] by (2)\n            if <(show lazer) = [0]> then\n                broadcast (lazers v)\n                stop [this script v]\n            end\n        end\n        broadcast (lets hide v)\n        erase all\n        set pen size to (20)\n        set pen color to (#860000)\n        start sound [sf_desintegration v]\n        repeat (30)\n            erase all\n            change pen size by (-0.5)\n            set pen color to (#860000)\n            if <(show lazer) = [0]> then\n                broadcast (lazers v)\n                stop [this script v]\n            end\n            go to (lazer cannon1 v)\n            go to (lazer cannon 2 v)\n        end\n        erase all\n        repeat (50)\n            change [arg v] by (2)\n            if <(show lazer) = [0]> then\n                broadcast (lazers v)\n                stop [this script v]\n            end\n        end\n    else\n        erase all\n    end\nend\n\nbroadcast (lazers v)\n\nforever\n    hide\nend\n\nwait (1) seconds\n\nhide\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\nwait (0.04) seconds\nset [pause v] to [0]\n\nwhen flag clicked\nset [level v] to [1]\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\nwhen I receive [new level v]\npoint in direction (90)\n\n@Music\n\nwhen flag clicked\nforever\n    play sound [01 - 夢追い人の物語 v] until done\nend\n\n@Sprite3\n\nwhen flag clicked\nset [level v] to [1]\ngo to [front v] layer\nshow\npoint in direction (90)\ngo to x: (0) y: (0)\n\nwhen I receive [turn v]\nrepeat (45)\n    turn right (2) degrees\nend\nwait (0.04) seconds\nset [pause v] to [0]\n\nwhen I receive [new level v]\npoint in direction (90)\n\n
                   [][][][]O —[ Rotate ]—  O[][][][]\n_________________________________________________\nWelcome to this unique game! Navigate the dungeon by pressing space to turn the level 90 degrees! Make sure you are not touching the ghost outline of the level when you rotate or else it wont work. (Because rotating at that location would put you in a wall… very\n incovenient…)      \n____________________\nControls: WASD and arrow keys. Press n to skip levels, r to restart, and space to rotate the level.   \nNo lag version https://turbowarp.org/579841121\n\n           ✅ Please follow @Capt_Boanerges for \n                             more cool games!\n                Also consider subbing to me on yt https://www.youtube.com/channel/UCNh18K3f8Xii1uf7rqFoOMQ\n\n