cave a platformer

Instructions: arrow keys to move.\ntry to make it out of the cave.\ngood luck.\n\n\nfollow for more fun games.

@Stage\n\nwhen flag clicked\nforever\n    if <not <(levels) = [15]>> then\n        switch backdrop to (backdrop1 v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(levels) = [15]> then\n        switch backdrop to (backdrop2 v)\n    end\nend\n\nwhen flag clicked\nforever\n    play sound [music v] until done\nend\n\n@Platformer\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (-200) y: (0)\npoint in direction (90)\nset rotation style [left-right v]\nset [x v] to [0]\nset [y v] to [0]\nforever\n    change [y v] by (-1)\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<(mouse x) > [0]> and <mouse down?>>>> then\n        change [x v] by (1)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<(mouse x) < [0]> and <mouse down?>>>> then\n        change [x v] by (-1)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (levels v)?> then\n        fast\n        if <touching (levels v)?> then\n            change y by (-6)\n            xcoll\n            if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<(mouse y) > [0]> and <mouse down?>>>> then\n                set [y v] to [12]\n                if <([abs v] of (x) ) = (x)> then\n                    set [x v] to [-8]\n                else\n                    set [x v] to [8]\n                end\n            else\n                set [x v] to [0]\n            end\n        end\n    end\n    change y by (y)\n    if <touching (levels v)?> then\n        ycoll\n        if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<(mouse y) > [0]> and <mouse down?>>> and <(y) < [0]>> then\n            set [y v] to [14]\n        else\n            set [y v] to [0]\n        end\n    end\nend\n\ndefine fast\nrepeat (6)\n    if <touching (levels v)?> then\n        change y by (1)\n    end\nend\n\ndefine ycoll\nrepeat until <not <touching (levels v)?>>\n    if <(y) > [0]> then\n        change y by (-1)\n    else\n        change y by (1)\n    end\nend\n\ndefine xcoll\nrepeat until <not <touching (levels v)?>>\n    if <(x) > [0]> then\n        change x by (-1)\n    else\n        change x by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (5)\nend\ndelete this clone\n\nwhen flag clicked\nset [levels v] to [1]\nforever\n    if <(x position) > [240]> then\n        go to x: (-200) y: (0)\n        change [levels v] by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    if <<touching (spike v)?> or <(y position) < [-180]>> then\n        go to x: (-200) y: (0)\n    end\nend\n\n@Levels\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to (levels)\nend\n\n@spike\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to (levels)\nend\n\n@lite\n\nwhen flag clicked\nforever\n    go to (platformer v)\nend\n\nwhen flag clicked\nset size to (100) %\nforever\n    repeat (20)\n        change size by (1)\n    end\n    repeat (20)\n        change size by (-1)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(levels) = [15]> then\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <not <(levels) = [15]>> then\n        show\n    end\nend\n\n@words\n\nwhen flag clicked\ngo to [back v] layer\ngo to x: (0) y: (0)\nforever\n    switch costume to (levels)\nend\n\n@Sprite1\n\nwhen flag clicked\ngo to [front v] layer\nhide\n\n