Islands- A Scrolling Platformer

Instructions: Why is this my most popular project?\n\nThis game is NOT supposed to be hard!\n  \n--  Island Artists Are Credited Below --     \n         ˜”*°•.˜”*°• ISLANDS •°*”˜.•°*”˜\n-Instructions-\n-Arrow Keys To Move\n-Collect Coins\n-Find The Portal(The Black Circle)\n-If You Need More Help, Scroll Down\n\n-Credits-\n@Colorsnatch -Level 1\n@AUMSUMTHEGREATHULK -Level 2\n@ivyirisliu848 -Level 3\n@ -PurpleHeart- -Level 4\n@GreenNeon -Level 5\n@jordanlim -Level 6\n@Yellow-Brain actually for the inspiration\n@griffpatch his YouTube tutorial on the scrolling engine helped out a lot.\nMusic Is Tape Machines-Wide Eyes\n\n-Level By Level Instructions:\n1. Jump on the trampoline to get to the cloud and collect the coin, Go to the tower thing, and you can jump on the blocks for the second coin. Go all the way to the left for the third coin, and then go right, there is a portal below that island.\n2. You can walk up the right side of the volcano, but on the left side, you can go under it.\n3. You can walk across the bridge to get to the other island.\n4. Go left\n5. Go Left\n6. Go Left\n8. This Is The End Level, You Can't Pass It\n\nThis did take a full day (About 6 Hours To Make)\nI know This Is easy,(Thanks Mom I Know) but it is just meant to admire the artwork. Enjoy.

@Stage\n\nwhen [m v] key pressed\nset [mouse v] to (join ((mouse x) + (SX)) (join [, ] ((mouse y) + (SY))))\n\nwhen [h v] key pressed\nhide variable [mouse v]\n\nwhen flag clicked\nset volume to (75) %\nforever\n    play sound [Tape Machines - Wide Eyes v] until done\nend\n\n@Debug\n\n@Player\n\nwhen flag clicked\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\ngo [backward v] (1) layers\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Setup v) and wait\n    Create Game\n    repeat until <(Exit) > []>\n        Tick\n        broadcast (Tick v) and wait\n    end\n    if <(Exit) = [Win]> then\n        U Win\n    else\n        Ur Dead\n    end\nend\n\ndefine Create Game\nset size to (100) %\nset [sy v] to [0]\nset [exit v] to []\nset [inair v] to [0]\nset [spy v] to [0]\nset [spx v] to [0]\nshow\nStart At\n\ndefine Tick\nif <key (left arrow v) pressed?> then\n    change [spx v] by (-2)\nend\nif <key (right arrow v) pressed?> then\n    change [spx v] by (2)\nend\nset [spx v] to ((Spx) * (.8))\nif <key (up arrow v) pressed?> then\n    if <[4] > (InAir)> then\n        set [spy v] to [16]\n    end\nend\nif <(SpY) > [-20]> then\n    if <not <touching (water v)?>> then\n        change [spy v] by (-2)\n    end\nend\nif <([abs v] of (Spx) ) > [0.9]> then\n    Change X By (round (Spx))\nend\nChange Y By (SpY)\nTest Die\nset [sx v] to (x)\nif <(SX) < [-800]> then\n    set [sx v] to [0]\nend\nchange [sy v] by (round (((y) - (SY)) / (10)))\nif <(SY) < [-500]> then\n    set [sy v] to [0]\nend\nPosition\nif <[-500] > (y)> then\n    set [exit v] to [Die]\nend\nif <touching (bounce v)?> then\n    set [spy v] to [32]\nend\n\ndefine Change Y By (sy)\nchange [y v] by (sy)\nchange [inair v] by (1)\nPosition\nrepeat until <not <touching (platform v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [inair v] to [0]\n    end\n    Position\n    set [spy v] to [0]\nend\n\ndefine Position\ngo to x: ((x) - (SX)) y: ((y) - (SY))\n\ndefine Change X By (sx)\nchange [x v] by (sx)\nPosition\nif <touching (platform v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (platform v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    if <key (up arrow v) pressed?> then\n        if <(sx) > [0]> then\n            set [spx v] to [-16]\n        else\n            set [spx v] to [16]\n        end\n        set [inair v] to [0]\n    else\n        set [spx v] to [0]\n    end\n    repeat until <not <touching (platform 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 Ur Dead\nset [exit v] to []\nrepeat (10)\n    change size by (-10)\n    wait (.05) seconds\nend\nhide\nset [sy v] to [0]\nStart At\nwait (0.5) seconds\n\ndefine Test Die\n\ndefine U Win\nset [exit v] to []\nrepeat (10)\n    change size by (-10)\n    wait (.05) seconds\nend\nhide\nif <(LEVEL) = [1]> then\n    change [level v] by (2)\nelse\n    change [level v] by (1)\nend\nwait (0.5) seconds\n\ndefine Start At\nif <(LEVEL) = [1]> then\n    set [x v] to [80]\n    set [y v] to [230]\nelse\n    if <(LEVEL) = [2]> then\n        set [x v] to [268]\n        set [y v] to [230]\n    else\n        if <(LEVEL) = [3]> then\n            set [x v] to [183]\n            set [y v] to [230]\n        else\n            if <(LEVEL) = [4]> then\n                set [x v] to [201]\n                set [y v] to [230]\n            else\n                if <(LEVEL) = [5]> then\n                    set [x v] to [153]\n                    set [y v] to [230]\n                else\n                    if <(LEVEL) = [6]> then\n                        set [x v] to [49]\n                        set [y v] to [230]\n                    else\n                        if <(LEVEL) = [7]> then\n                            set [x v] to [83]\n                            set [y v] to [230]\n                        else\n                            if <(LEVEL) = [8]> then\n                                set [x v] to [0]\n                                set [y v] to [99]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\n@Coin thingys\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPos ((x) - (SX)) ((y) - (SY))\nif <touching (player v)?> then\n    change [collected v] by (1)\n    if <(Collected) = (CollectedMax)> then\n        broadcast (Open Portal v)\n    end\n    delete this clone\nend\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [collectedmax v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    set size to (100) %\n    go to [front v] layer\n    switch costume to (blob v)\n    Clone At X; [43] Y; [36]\n    Clone At X; [-143] Y; [48]\n    Clone At X; [-258] Y; [-127]\n    Clone At X; [271] Y; [246]\nelse\n    if <(LEVEL) = [2]> then\n        go to [front v] layer\n        switch costume to (blob v)\n        Clone At X; [-203] Y; [183]\n        Clone At X; [218] Y; [183]\n        Clone At X; [-71] Y; [-145]\n        Clone At X; [87] Y; [-93]\n    else\n        if <(LEVEL) = [3]> then\n            set size to (50) %\n            go to [front v] layer\n            switch costume to (blob v)\n            Clone At X; [96 ] Y; [20]\n            Clone At X; [26] Y; [18]\n            Clone At X; [-17] Y; [135]\n            Clone At X; [-182] Y; [20]\n        else\n            if <(LEVEL) = [4]> then\n                set size to (50) %\n                go to [front v] layer\n                switch costume to (blob v)\n                Clone At X; [173] Y; [118]\n                Clone At X; [108] Y; [178]\n                Clone At X; [-43] Y; [41]\n                Clone At X; [-154] Y; [147]\n            else\n                if <(LEVEL) = [5]> then\n                    set size to (50) %\n                    go to [front v] layer\n                    switch costume to (blob v)\n                    Clone At X; [133] Y; [112]\n                    Clone At X; [-57] Y; [168]\n                    Clone At X; [-111] Y; [104]\n                    Clone At X; [-163] Y; [99]\n                else\n                    if <(LEVEL) = [6]> then\n                        set size to (50) %\n                        go to [front v] layer\n                        switch costume to (blob v)\n                        Clone At X; [-53] Y; [140]\n                    else\n                        if <(LEVEL) = [7]> then\n                            set size to (50) %\n                            go to [front v] layer\n                            switch costume to (blob v)\n                            Clone At X; [-25] Y; [67]\n                        end\n                        set [x v] to [-999999999]\n                    end\n                    set [x v] to [-999999999]\n                end\n                set [x v] to [-999999999]\n            end\n            set [x v] to [-999999999]\n        end\n        set [x v] to [-999999999]\n    end\n    set [x v] to [-999999999]\nend\nset [x v] to [-999999999]\n\ndefine Pos (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 [collectedmax v] by (1)\n\n@Platform\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPos ((x) - (SX)) ((y) - (SY))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    go to [front v] layer\n    go [backward v] (1) layers\n    switch costume to (level 1 1 v)\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n    else\n        if <(LEVEL) = [3]> then\n            go to [front v] layer\n            go [backward v] (1) layers\n            switch costume to (level 3 1 v)\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 4 1 v)\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (level 5 1 v)\n                else\n                    if <(LEVEL) = [6]> then\n                        switch costume to (level 6 1 v)\n                    else\n                        if <(LEVEL) = [7]> then\n                            switch costume to (level 7 1  v)\n                        else\n                            if <(LEVEL) = [8]> then\n                                switch costume to (level 8 1 2 v)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Pos (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\n@Exit\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPos ((x) - (SX)) ((y) - (SY))\nif <<(costume [number v]) = [2]> and <touching (player v)?>> then\n    set [exit v] to [Win]\nend\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    go to [front v] layer\n    switch costume to (closed v)\n    Clone At X; [-50] Y; [-303]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (closed v)\n        Clone At X; [-423] Y; [160]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (closed v)\n            Clone At X; [-318] Y; [41]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (closed v)\n                Clone At X; [-342] Y; [121]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (closed v)\n                    Clone At X; [-363] Y; [104]\n                else\n                    if <(LEVEL) = [6]> then\n                        switch costume to (closed v)\n                        Clone At X; [-207] Y; [150]\n                    else\n                        if <(LEVEL) = [7]> then\n                            switch costume to (closed v)\n                            Clone At X; [-189] Y; [67]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nset [x v] to [-999999999]\n\ndefine Pos (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)\n\nwhen I receive [open portal v]\nswitch costume to (open v)\n\n@Back Stuff\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPos ((x) - (SX)) ((y) - (SY))\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)\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n    else\n        if <(LEVEL) = [3]> then\n            go to [back v] layer\n            switch costume to (level 3 1 v)\n        else\n            if <(LEVEL) = [4]> then\n                go to [front v] layer\n                switch costume to (level 4 1 v)\n            else\n                if <(LEVEL) = [5]> then\n                    go to [back v] layer\n                    switch costume to (level 5 1 v)\n                else\n                    if <(LEVEL) = [6]> then\n                        go to [back v] layer\n                        switch costume to (level  6 1 v)\n                    else\n                        if <(LEVEL) = [7]> then\n                            go to [back v] layer\n                            switch costume to (level  7 1 v)\n                        else\n                            if <(LEVEL) = [8]> then\n                                switch costume to (level  8 1 v)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Pos (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\n@Bounce\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPos ((x) - (SX)) ((y) - (SY))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n    end\n    if <(LEVEL) = [3]> then\n        switch costume to (level 3 1 v)\n    end\nend\n\ndefine Pos (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\n@Back Stuff 2\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPos ((x) - (SX)) ((y) - (SY))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        go to [back v] layer\n    else\n        if <(LEVEL) = [3]> then\n            go to [front v] layer\n            switch costume to (level 3 1 v)\n        else\n            if <(LEVEL) = [4]> then\n                go to [front v] layer\n                switch costume to (level 4 1 v)\n            else\n                if <(LEVEL) = [5]> then\n                    go to [front v] layer\n                    switch costume to (level 5 1 v)\n                else\n                    if <(LEVEL) = [6]> then\n                        go to [front v] layer\n                        switch costume to (level 6 1 v)\n                    else\n                        if <(LEVEL) = [7]> then\n                            go to [front v] layer\n                            switch costume to (level 7 1 v)\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Pos (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\n@Thumbnail\n\nwhen flag clicked\nreset timer\nforever\n    go to [front v] layer\n    reset timer\nend\n\nwhen flag clicked\nif <(y position) = [0]> then\n    glide (0.3) secs to x: (0) y: (345)\nend\ngo to x: (0) y: (345)\nhide\n\nwhen [timer v] > (0.1)\ngo to x: (0) y: (-345)\nshow\nglide (0.3) secs to x: (0) y: (0)\nwait until <([y position v] of [thumbnailb v]) = [0]>\nstop [all v]\n\n