Geometry World || A Scrolling Platformer ||                     #Games #art
@Stage\n\nwhen flag clicked\n\nwhen I receive [play game v]\nforever\n    play sound [Catchy music v] until done\nend\n\nwhen I receive [outro v]\nstop all sounds\nstop [other scripts in sprite v]\nstop [this script v]\n\n@exit\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<(costume [name v]) = [open]> and <touching (you v)?>> then\n    set [exit v] to [win]\nend\n\nwhen I receive [setup v]\ngo to [back v] layer\nhide\nset [collected v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    go to [back v] layer\n    switch costume to (closed v)\n    Clone at x: [2050] y: [50]\nelse\n    if <(LEVEL) = [2]> then\n        go to [back v] layer\n        switch costume to (closed v)\n        Clone at x: [2150] y: [-30]\n    else\n        if <(LEVEL) = [3]> then\n            go to [back v] layer\n            switch costume to (closed v)\n            Clone at x: [2130] y: [-30]\n        else\n            if <(LEVEL) = [4]> then\n                go to [back v] layer\n                switch costume to (closed v)\n                Clone at x: [2272] y: [-5]\n            else\n                set [x v] to [-999999999]\n            end\n        end\n    end\nend\n\nif <(LEVEL) = [3]> then\n    switch costume to (closed v)\n    Clone at x: [30] y: [393]\nend\n\nClone at x: [240] y: [16]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\nwhen I receive [open portal v]\nswitch costume to (open v)\n\nClone at x: [1317] y: [16]\nClone at x: [240] y: [16]\n\nset [y v] to (y)\n\nset [exit v] to [win]\n\nswitch costume to (closed v)\n\nset [x v] to [-999999999]\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen flag clicked\nhide\n\n@coins\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (you v)?> then\n    start sound [Coin v]\n    change [collected v] by (1)\n    delete this clone\nend\n\nwhen I receive [setup v]\nhide\nswitch costume to (coin v)\nset [collected v] to [0]\nset [collected max v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    Clone at x: [500] y: [80]\n    Clone at x: [1075] y: [140]\n    Clone at x: [1450] y: [190]\n    Clone at x: [1651] y: [113]\nelse\n    if <(LEVEL) = [2]> then\n        Clone at x: [273] y: [150]\n        Clone at x: [918] y: [255]\n        Clone at x: [1300] y: [170]\n    else\n        if <(LEVEL) = [3]> then\n            Clone at x: [340] y: [0]\n            Clone at x: [806] y: [213]\n            Clone at x: [1370] y: [115]\n        else\n            if <(LEVEL) = [4]> then\n                Clone at x: [800] y: [-90]\n                Clone at x: [1495] y: [28]\n                Clone at x: [1927] y: [6]\n            end\n        end\n    end\nend\nset [x v] to [-999999999999999]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\nchange [collected max v] by (1)\n\nwhen I receive [tick v]\nif <(COLLECTED) = (COLLECTED MAX)> then\n    broadcast (open portal v)\nend\n\nwhen I start as a clone\nif <touching (you v)?> then\n    change [collected v] by (1)\n    delete this clone\nend\n\nClone at x: [715] y: [40]\nClone at x: [1100] y: [110]\n\nswitch costume to (coin v)\n\nswitch costume to (coin v)\n\ndelete this clone\n\nwhen I receive [elsa v]\nstop [other scripts in sprite v]\n\nwhen I receive [elsa v]\nhide\nstop [other scripts in sprite v]\n\nwhen I receive [elsa v]\nforever\n    hide\n    stop [other scripts in sprite v]\nend\n\nClone at x: [795] y: [55]\nClone at x: [1634] y: [-70]\n\nClone at x: [806] y: [213]\nClone at x: [1370] y: [115]\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen flag clicked\nhide\n\n@levels\n\nwhen I receive [green flag v]\nshow\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nshow\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3 1 v)\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level4 1 v)\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (end v)\n                end\n            end\n        end\n    end\nend\n\nClone at x: [400] y: [0]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at x: [360] y: [0]\nClone at x: [360] y: [0]\n\nClone at x: [360] y: [0]\nClone at x: [360] y: [0]\n\nset [level v] to [3]\n\nwhen I receive [start menu v]\nhide\n\nshow\n\nhide\n\nwhen flag clicked\nhide\n\nif <key (space v) pressed?> then\n    show\nend\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen I receive [play game v]\nforever\n    if <(LEVEL) = [3]> then\n        broadcast (Outro v)\n    end\nend\n\n@you\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\nset size to (80) %\npoint in direction (90)\n\ncreate clone of (_myself_ v)\n\nwhen I receive [play game v]\nshow\nhide variable [mouse v]\nset [ghost v] effect to (0)\nswitch costume to (costume1 v)\nset [level v] to [1]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Setup v) and wait\n    Game On\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v) and wait\n    end\n    if <(EXIT) = [win]> then\n        Game - Win\n    else\n        Game - Die\n    end\nend\n\ndefine Game On\nset size to (60) %\npoint in direction (90)\nset [ghost v] effect to (0)\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nshow\n\ndefine Tick\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    switch costume to (costume2 v)\n    Change Player x by [-7]\nend\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(x position) < (mouse x)>>> then\n    switch costume to (costume1 v)\n    Change Player x by [7]\nend\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(y position) < (mouse y)>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [20]\n    end\nend\nchange [sy v] by (-2)\nChange Player y by (sy)\nPosition\nTest - Die\nchange [scroll x v] by (round (((x) - (SCROLL X)) / (15)))\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (20)))\nif <(SCROLL Y) < [5]> then\n    set [scroll y v] to [0]\nend\nPosition\nif <(y) < [-180]> then\n    set [exit v] to [die]\nend\n\ndefine Change Player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (levels v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [in air v] to [0]\n    end\n    Position\n    set [sy v] to [0]\nend\n\ndefine Position\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\ndefine Change Player x by (sx)\nchange [x v] by (sx)\nPosition\nif <touching (levels v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (levels v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    repeat until <not <touching (levels v)?>>\n        if <(sx) > [0]> then\n            change [x v] by (-1)\n        else\n            change [x v] by (1)\n        end\n        Position\n    end\nend\n\ndefine Game - Die\nset [exit v] to []\nclear graphic effects\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.5) seconds\n\ndefine Test - Die\nif <touching (danger v)?> then\n    set [exit v] to [die]\nend\n\nchange [ghost v] effect by (10)\nset [scroll y v] to [0]\n\ndefine Game - Win\nhide\nchange [level v] by (1)\n\nwait (0.009) seconds\nshow\n\nwhen I receive [start game v]\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nswitch costume to ([costume # v] of [costume selection v])\n\nswitch costume to (costume2 v)\n\nswitch costume to (([costume # v] of [costume selection v]) - (1))\n\nswitch costume to ([costume # v] of [costume selection v])\n\nwhen I receive [die v]\ngo to x: (0) y: (-62)\n\nwhen flag clicked\n\nbroadcast (Play Game v)\n\nhide\n\nshow\n\nrepeat (2)\n    change size by (-25)\nend\nwait (0.1) seconds\nrepeat (2)\n    change size by (25)\nend\nwait (0.1) seconds\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nstop [this script v]\n\n@levels2\n\nwhen I receive [green flag v]\nshow\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nshow\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3 1 v)\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level4 1 v)\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (end v)\n                end\n            end\n        end\n    end\nend\n\nClone at x: [400] y: [0]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at x: [360] y: [0]\nClone at x: [360] y: [0]\n\nClone at x: [360] y: [0]\nClone at x: [360] y: [0]\n\nset [level v] to [3]\n\nwhen I receive [start menu v]\nhide\n\nshow\n\nhide\n\nshow\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen flag clicked\nhide\n\n@danger\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\ngo to [back v] layer\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n        Clone at x: [360] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 3 1 v)\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n            Clone at x: [360] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 4 1 v)\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n                Clone at x: [360] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (end v)\n                end\n            end\n        end\n    end\nend\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen flag clicked\nhide\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Start Screen\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [message4 v]\nshow\nswitch costume to (costume1 v)\nrepeat (2)\n    create clone of (_myself_ v)\n    next costume\nend\nhide\nswitch costume to (costume3 v)\nset volume to (100) %\nforever\n    play sound [POL-bright-future-short v] until done\nend\n\nwhen I start as a clone\nshow\nset volume to (100) %\nif <(costume [number v]) = [2]> then\n    forever\n        set size to ((([cos v] of ((timer) * (400)) ) * (6)) + (s)) %\n        set y to (([sin v] of ((timer) * (100)) ) * (3))\n        if <touching (mouse-pointer v)?> then\n            set [s v] to [120]\n            if <mouse down?> then\n                broadcast (Transit v)\n            end\n        else\n            set [s v] to [100]\n        end\n    end\nend\n\nwhen I receive [play game v]\nset volume to (0) %\ndelete this clone\n\nwhen I receive [transit v]\n\nwhen I receive [transit v]\nif <(costume [number v]) = [3]> then\n    set [ghost v] effect to (100)\n    switch costume to (costume3 v)\n    show\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    broadcast (ZEENDOFSTART v)\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\nend\n\ndelete this clone\n\ndelete this clone\n\nbroadcast (Play Game v)\n\nwhen I receive [zeendofstart v]\nbroadcast (Play Game v)\n\nwait (0.1) seconds\n\nwhen I start as a clone\nif <(costume [number v]) = [1]> then\n    forever\n        set y to (([sin v] of ((timer) * (150)) ) * (7))\n    end\nend\n\n@intro\n\nwhen flag clicked\nThings [3] [90]\n\ndefine Things (velocity) (dest)\n\nrepeat (10)\n\nset size to (100) %\n\nturn right (15) degrees\n\nset y to (0)\nchange x by (10)\n\nforever\n\n\n\nwhen flag clicked\nstart sound [Pirate Lagoon - Diddy Kong Racing v]\nshow\ngo to x: (0) y: (0)\npoint in direction (90)\nset [timer v] to [0]\nswitch costume to (costume3 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume4 v)\nswitch costume to (blanc v)\nswitch costume to (blanc v)\ncreate clone of (_myself_ v)\nswitch costume to (costume4 v)\nset [brakes v] to [200]\nbroadcast (message2 v)\nrepeat (40)\n    change [timer v] by (40)\n    change [brakes v] by (-5)\n    set size to (((((([sin v] of (timer) ) * (brakes)) / (timer)) * (100)) * (-1)) + (90)) %\nend\nrepeat (20)\n    change x by (((100) - (x position)) / (4))\n    point in direction (((x position) / (7)) + (90))\nend\nrepeat (20)\n    change x by (((-100) - (x position)) / (4))\n    point in direction (((x position) / (7)) + (90))\nend\nswitch costume to (costume1 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume6 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume4 v)\nrepeat until <touching (_edge_ v)?>\n    change x by (((600) - (x position)) / (4))\n    point in direction (((x position) / (2)) + (90))\n    set [x2 v] to (x position)\nend\nrepeat (3)\n    change x by (((600) - (x position)) / (4))\n    point in direction (((x position) / (2)) + (90))\nend\nhide\nwait (1) seconds\nbroadcast (message1 v)\n\nwhen I start as a clone\nif <(costume [number v]) = [2]> then\n    clear graphic effects\n    point in direction (90)\n    hide\n    go to x: (0) y: (0)\n    wait (0.1) seconds\n    show\n    wait (0.7) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\nend\n\nwhen I receive [message1 v]\nrepeat (10)\n    change volume by (-10)\nend\nstop all sounds\nset volume to (100) %\nbroadcast (message4 v)\n\nwhen I start as a clone\nif <(costume [number v]) = [3]> then\n    clear graphic effects\n    point in direction (90)\n    hide\n    go to [back v] layer\n    go [forward v] (1) layers\n    go to x: (0) y: (0)\n    wait (0.1) seconds\n    broadcast (message3 v)\n    set size to (0) %\n    show\n    repeat (20)\n        change size by (((100) - (size)) / (4))\n    end\n    wait (0.3) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\nend\n\nset size to (0) %\n\nwhen I start as a clone\nif <(costume [number v]) = [4]> then\n    clear graphic effects\n    point in direction (90)\n    hide\n    go to [back v] layer\n    go to x: (0) y: (0)\n    show\nend\n\nrepeat (20)\n    change size by (((100) - (size)) / (4))\nend\nwait (0.3) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nset size to (100) %\n\nwait (0.1) seconds\n\nwhen I receive [message2 v]\nif <(costume [number v]) = [6]> then\n    switch costume to (costume5 v)\n    hide\n    repeat (3)\n        wait (0.1) seconds\n        create clone of (_myself_ v)\n    end\n    switch costume to (costume3 v)\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [5]> then\n    show\n    clear graphic effects\n    set size to (0) %\n    go to [back v] layer\n    go [forward v] (1) layers\n    point in direction (90)\n    repeat until <touching (_edge_ v)?>\n        change [color v] effect by (1)\n        change size by (10)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nrepeat (10)\n\nwait (1) seconds\n\nwhen I start as a clone\nif <(costume [number v]) = [7]> then\n    repeat until <touching (_edge_ v)?>\n        go to x: (x2) y: (0)\n        turn right (2) degrees\n        go to [back v] layer\n        go [forward v] (1) layers\n    end\n    delete this clone\nend\n\nclear graphic effects\npoint in direction (90)\nhide\n\nrepeat (10)\n    go to x: (0) y: (0)\n    show\nend\n\nbroadcast (message1 v)\nswitch costume to (costume5 v)\nhide\nrepeat (3)\n    wait (0.1) seconds\n    create clone of (_myself_ v)\nend\nswitch costume to (costume3 v)\n\nwhen I receive [message3 v]\nif <(costume [number v]) = [6]> then\n    switch costume to (costume5 v)\n    hide\n    repeat (3)\n        wait (0.1) seconds\n        create clone of (_myself_ v)\n    end\n    switch costume to (costume3 v)\nend\n\nwhen I receive [message4 v]\ndelete this clone\n\nwhen I receive [outro v]\nstop all sounds\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Sprite1\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\ngo to [front v] layer\ngo to x: (0) y: (0)\n\nforever\nend\n\n@Outro\n\nwhen flag clicked\n\nbroadcast (Outro v)\n\nwhen I start as a clone\nshow\ngo to [front v] layer\ngo [backward v] (costume [number v]) layers\npoint in direction (90)\nforever\n    if <(costume [number v]) = [1]> then\n        point in direction ((90) + (([cos v] of ((timer) * (100)) ) * (5)))\n    else\n        if <<(costume [number v]) = [7]> or <<(costume [number v]) = [8]> or <<(costume [number v]) = [10]> or <(costume [number v]) = [9]>>>> then\n            go to x: (((mouse x) / ((costume [number v]) - (3))) * (-1)) y: (((mouse y) / ((costume [number v]) - (3))) * ([sin v] of ((timer) * (100)) ))\n        end\n    end\n    if <not <<(costume [number v]) = [7]> or <<(costume [number v]) = [8]> or <<(costume [number v]) = [10]> or <(costume [number v]) = [9]>>>>> then\n        if <(costume [number v]) = [1]> then\n            set y to (([sin v] of ((timer) * (100)) ) * ((20) - ((costume [number v]) * (3))))\n        end\n        if <not <<(costume [number v]) = [1]> or <(costume [number v]) = [1]>>> then\n            point in direction ((90) + (([sin v] of ((timer) * (200)) ) * (costume [number v])))\n            set y to (([sin v] of ((timer) * (165)) ) * (((costume [number v]) / (2)) * (10)))\n        end\n    end\nend\n\nforever\n\ngo to x: (((mouse x) / ((costume [number v]) - (3))) * ([sin v] of ((timer) * (100)) )) y: (((mouse y) / ((costume [number v]) - (3))) * ([sin v] of ((timer) * (100)) ))\n\npoint in direction (90)\n\nwhen I receive [mooxic v]\nplay sound [Hup! v] until done\nforever\n    play sound [Tobu - Infectious \(Original Mix\).mp3 v] until done\nend\n\nwhen I receive [outro v]\nswitch costume to (costume1 v)\nbroadcast (Mooxic v)\nrepeat (9)\n    create clone of (_myself_ v)\n    next costume\n    reset timer\nend\ncreate clone of (_myself_ v)\nhide\n\n
★★★Geometry World || A Scrolling Platformer ||★★★    \n\nStory:\nYou're a square, stuck in someone's maths book, looks like they've been doing Geometry lately, complete all the levels to get out.\n\nArrows (duh)\nBeware the pointy isosceles triangles!