Sea Floor - A Scrolling Platformer

Instructions: Hi!!                                 xXMobile Friendly!!!Xx\nAfter a quite long time I came up with this platformer.\nIt contains 20 levels and you can't wall jump.\nA special feature is, that the ball is bouncy!!\nInstructions:\n- Move with Arrow keys or just tap on the screen\n- Have fun!!!

@Stage\n\n@Sprite1\n\nwhen flag clicked\nforever\n    set volume to (50) %\n    play sound [Demons v] until done\nend\n\n@ground\n\nset size to (100) %\n\nwhen I receive [level-up v]\nnext costume\nset [level v] to (costume [number v])\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\nset size to (100) %\n\n@Sprite3\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nhide\n\n@Smiley\n\ndefine touch ground <up?>\nchange [falling v] by (1)\nrepeat until <not <touching (ground v)?>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\nwhen I receive [play v]\nshow\ngo to x: (-227) y: (170)\nset [speed y v] to [0]\nforever\n    change y by (speed y)\n    change [speed y v] by (-1)\n    touch ground <(speed y) > [0]>\n    set rotation style [left-right v]\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        walk (90) (5)\n    end\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        walk (-90) (-5)\n    end\n    if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n        if <<(jump key) = [0]> and <(falling) < [3]>> then\n            set [speed y v] to [13]\n            set [falling v] to [6]\n            set [jump key v] to [1]\n        end\n    else\n        set [jump key v] to [0]\n    end\n    if <(x position) > [225]> then\n        broadcast (level-up v)\n        go to x: (-227) y: (170)\n    end\n    if <<<<(y position) < [-165]> or <touching color (#82d2ff)?>> or <touching color (#9fe1ff)?>> or <touching (sprite2 v)?>> then\n        go to x: (-227) y: (170)\n        change [deaths v] by (1)\n    end\n    if <touching (double2 v)?> then\n        change [deaths v] by (1)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nhide\nset size to (60) %\nset [deaths v] to [0]\nhide variable [deaths v]\n\ndefine walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <touching (ground v)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\nend\n\nwhen I receive [end v]\nhide\n\nwhen flag clicked\nbroadcast (play v)\n\n@Sprite2\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    set [ghost v] effect to (98)\n    if <(level) = [1]> then\n        hide\n    else\n        if <(level) = [2]> then\n            hide\n        else\n            if <(level) = [3]> then\n                hide\n            else\n                if <(level) = [4]> then\n                    show\n                    switch costume to (costume1 v)\n                    go to x: (-4) y: (-110)\n                else\n                    if <(level) = [5]> then\n                        show\n                        switch costume to (costume3 v)\n                        go to x: (47) y: (-70)\n                    else\n                        if <(level) = [6]> then\n                            show\n                            switch costume to (costume4 v)\n                            go to x: (35) y: (-62)\n                        else\n                            if <(level) = [7]> then\n                                show\n                                switch costume to (costume5 v)\n                                go to x: (95) y: (-85)\n                            else\n                                if <(level) = [8]> then\n                                    show\n                                    switch costume to (costume6 v)\n                                    go to x: (63) y: (-110)\n                                else\n                                    if <(level) = [9]> then\n                                        show\n                                        switch costume to (costume7 v)\n                                        go to x: (-1) y: (-67)\n                                    else\n                                        if <(level) = [10]> then\n                                            show\n                                            switch costume to (costume7 v)\n                                            go to x: (-1) y: (-63)\n                                        else\n                                            if <(level) = [11]> then\n                                                hide\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\n@Sprite5\n\nwhen flag clicked\nset [lag v] to [0]\nhide\ngo [forward v] (10) layers\nforever\n    if <(lag) = [0]> then\n        wait (pick random (0) to (0.02)) seconds\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I start as a clone\nclear graphic effects\nset [ghost v] effect to (pick random (80) to (90))\nset size to (pick random (25) to (45)) %\ngo to x: (pick random (240) to (-240)) y: (180)\npoint in direction (90)\nshow\nglide (pick random (2) to (8)) secs to x: (pick random (240) to (-240)) y: (-180)\nhide\ndelete this clone\n\nwhen flag clicked\nforever\n    if <key (z v) pressed?> then\n        if <(lag) = [0]> then\n            set [lag v] to [1]\n        else\n            set [lag v] to [0]\n        end\n    end\nend\n\n