Grasslands a scrolling platformer
@Stage\n\nwhen flag clicked\nset [mouse v] to [0]\nforever\n    play sound [Inferno v] until done\nend\n\nwhen [m v] key pressed\nset [mouse v] to (join ((mouse x) + (SCROLL X)) (join [, ] ((mouse y) + (SCROLL Y))))\nshow variable [mouse v]\n\nwhen I receive [end game v]\nforever\n    stop all sounds\nend\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\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Set up 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 [x v] to [0]\nset [y v] to [0]\nset [sx v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset [scroll x v] to [0]\nset [scroll y v] to [0]\npoint in direction (90)\nset [ghost v] effect to (0)\nset size to (100) %\nshow\n\ndefine Tick\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [sx v] by (-2)\nend\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [sx v] by (2)\nend\nset [sx v] to ((sx) * (0.8))\nif <([abs v] of (sx) ) > [0.9]> then\n    change player x by (round (sx))\nend\nif <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nchange [sy v] by (-2)\nchange player y by (sy)\nset [scroll x v] to (X)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (10)))\nif <(SCROLL Y) < [0]> 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\nTest-die\nif <touching (platforms v)?> then\n    repeat until <not <touching (platforms 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]\n    end\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 (platforms v)?> then\n    repeat (12)\n        change [y v] by (1)\n        position\n        if <not <touching (platforms v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n        if <(sx) > [0]> then\n            set [sx v] to [-10]\n        else\n            set [sx v] to [10]\n        end\n        set [in air v] to [0]\n    else\n        set [sx v] to [0]\n    end\n    repeat until <not <touching (platforms 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 []\nrepeat (5)\n    hide\n    wait (0.1) seconds\n    show\n    wait (0.1) seconds\nend\nhide\nwait (0.5) seconds\n\ndefine Test-die\nif <<touching (saws v)?> or <touching (danger v)?>> then\n    set [exit v] to [die]\nend\n\ndefine Game-win\nrepeat (50)\n    point towards (portal v)\n    turn right (65) degrees\n    move ((distance to [portal v]) / (2)) steps\n    change size by (-1)\n    change [ghost v] effect by (2)\nend\nhide\nwait (1) seconds\nchange [level v] by (1)\n\nwhen I receive [trampoline v]\nstart sound [trampoline sound v]\nset [sy v] to [35]\n\nwhen I receive [end game v]\nset [scroll y v] to [-9999]\ngo to [back v] layer\n\n@platforms\n\nwhen I receive [green flag v]\ngo to [back v] layer\nshow\n\nwhen I receive [tick v]\nposition ((X) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [set up v]\ngo to [front v] layer\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (level 1 1 v)\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    clone at x: [300] y: [0]\n    clone at x: [400] y: [0]\n    clone at x: [500] y: [0]\n    clone at x: [700] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level2 1 v)\n        clone at x: [475] y: [0]\n        clone at x: [400] y: [0]\n        go to [back v] layer\n        clone at x: [500] y: [300]\n        clone at x: [550] y: [-50]\n        clone at x: [550] y: [100]\n        clone at x: [600] y: [0]\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 I receive [end game v]\ngo to [back v] layer\n\n@landscape\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 [set up v]\ngo to [back v] layer\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (level 1 1 v)\nif <(LEVEL) = [1]> then\n    clone at x: [300] y: [0]\n    clone at x: [400] y: [0]\n    clone at x: [500] y: [0]\n    clone at x: [700] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        go to [back v] layer\n        switch costume to (level2 1 v)\n        clone at x: [475] y: [0]\n        clone at x: [400] y: [0]\n        clone at x: [500] y: [300]\n        clone at x: [550] y: [-50]\n        clone at x: [550] y: [100]\n        clone at x: [600] y: [0]\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\ngo to [back v] layer\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)\ngo to [back v] layer\nnext costume\n\nwhen I receive [end game v]\ngo to [back v] layer\n\n@danger\n\nwhen I receive [green flag v]\ngo to [back v] layer\nshow\n\nwhen I receive [tick v]\nposition ((X) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [set up v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (level 1 2 v)\nif <(LEVEL) = [1]> then\n    clone at x: [300] y: [0]\n    clone at x: [700] y: [-78]\n    clone at x: [1200] y: [-2]\nelse\n    if <(LEVEL) = [2]> then\n        go to [back v] layer\n        clone at x: [331] y: [-130]\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)\nset [x v] to (x)\nset [y v] to (y)\nnext costume\n\n@saws\n\nwhen I receive [green flag v]\ngo to [back v] layer\nhide\ndelete this clone\n\nwhen I receive [tick v]\nturn right (10) degrees\nposition ((X) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [set up v]\ngo to [back v] layer\nhide\nswitch costume to (costume1 \(17\) v)\nif <(LEVEL) = [1]> then\n    clone at x: [850] y: [30]\n    clone at x: [1080] y: [-20]\n    clone at x: [1320] y: [-70]\nelse\n    if <(LEVEL) = [2]> then\n        go to [back v] layer\n        clone at x: [90] y: [50]\n        clone at x: [653] y: [-53]\n        clone at x: [848] y: [-100]\n        clone at x: [1000] y: [-100]\n    end\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\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\n@portal\n\nwhen I receive [green flag v]\nshow\n\nwhen I receive [tick v]\nposition ((X) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<(costume [name v]) = [open]> and <touching (player v)?>> then\n    set [exit v] to [win]\nend\n\nwhen I receive [set up v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (closed v)\n    clone at x: [2290] y: [170]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (closed v)\n        clone at x: [3200] y: [380]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (closed v)\n            clone at x: [99999999999999999999999999999] y: [0]\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)\nchange [x v] by (x)\nchange [y v] by (y)\n\nwhen I receive [open door v]\nswitch costume to (open v)\n\n@coins\n\nwhen I receive [green flag v]\npoint in direction (90)\ngo to [back v] layer\nhide\n\nwhen I receive [tick v]\nposition ((X) - (SCROLL X)) ((y) - (SCROLL Y))\nnext costume\nif <touching (player v)?> then\n    start sound [Coin v]\n    change [collected v] by (1)\n    if <(COLLECTED) = (COLLECTED MAX)> then\n        broadcast (Open Door v)\n    end\n    delete this clone\nend\n\nwhen I receive [set up v]\nhide\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    switch costume to (coin1 \(1\) v)\n    clone at x: [85] y: [0]\n    clone at x: [569] y: [0]\n    clone at x: [1042] y: [141]\n    clone at x: [1485] y: [129]\n    clone at x: [2188] y: [146]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (coin1 \(1\) v)\n        clone at x: [66] y: [137]\n        clone at x: [300] y: [0]\n        clone at x: [543] y: [0]\n        clone at x: [925] y: [-40]\n        clone at x: [3097] y: [352]\n    end\nend\nset [x v] to [-99999]\nswitch costume to (costume1 \(17\) v)\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)\nchange [collected max v] by (1)\ncreate clone of (_myself_ v)\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\n@coins2\n\nwhen I receive [green flag v]\npoint in direction (90)\ngo to [back v] layer\nhide\n\nwhen I receive [tick v]\nposition ((X) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (player v)?> then\n    broadcast (trampoline v)\nend\n\nwhen I receive [set up v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [2]> then\n    clone at x: [1103] y: [-55]\nend\nset [x v] to [-99999999999999]\nswitch costume to (costume1 \(17\) v)\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\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\n@WIN\n\nwhen flag clicked\nset [level v] to [1]\nset [ghost v] effect to (100)\ngo to [front v] layer\nshow\ngo to x: (0) y: (0)\nforever\n    reset timer\n    if <(LEVEL) = [3]> then\n        WIN!!!\n    end\nend\n\ndefine WIN!!!\nbroadcast (end game v)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\n@thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\nend\n\n@1024px-Speaker_Icon\n\nwhen this sprite clicked\nforever\n    stop all sounds\nend\n\nwhen flag clicked\nset [muted? v] to [unmuted]\n\n\n\n
Use arrow keys or wad do not touch spikes or saws they will kill you! touch the portal to advance to the next level there are two levels right now and each level is possible please don't complain if its to hard for you 