ABSTRACT platformer || a realistic scrolling platformer   

Instructions: ALL READ FOR GOOD GAME \nTOUT LIRE POUR UN BON JEU \nMobil support\n#1in tendance OMG thank you !!!!!!! \n__________________・ENGLISH ・___________________\n\n※ Collecte all gems for open the flag \n※ Don’t touch spikes or poison\n※ Enjoy your game =D \n\n__________________・FRANCAIS ・__________________\n\n※ Collecte toutes les gemmes pour débloquer le drapeau\n※ Ne touche pas les piques ou les poisons \n※ Amuses toi bien =D\n\nIf you like my game love and fave \nSi tu as aimé mon jeu lache un coeur et une etoile \n\nDebility_Keops loved ;)

@Stage\n\ndefine Next Level\nbroadcast (Reset v)\nset [level v] to ((LEVEL) + (1))\nbroadcast (Setup v)\n\ndefine Reset\nbroadcast (Reset v)\nbroadcast (Setup v)\n\nwhen flag clicked\nforever\n    play sound [Nebula v] until done\nend\n\n@Player\n\ndefine Change Player Y By (sy)\nchange [player: y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (platforms v)?>>\n    if <(sy) > [0]> then\n        change [player: y v] by (-1)\n    else\n        change [player: y v] by (1)\n        set [in air v] to [0]\n    end\n    Position\n    set [sy v] to [0]\nend\n\ndefine Change Player X By (sx)\nchange [player: x v] by (sx)\nPosition\nif <touching (platforms v)?> then\n    repeat (12)\n        change [player: y v] by (1)\n        Position\n        if <not <touching (platforms v)?>> then\n            stop [this script v]\n        end\n    end\n    change [player: y v] by (-12)\n    if <key (up arrow v) pressed?> then\n        if <(sx) > [0]> then\n            set [sx v] to [-16]\n        else\n            set [sx v] to [0]\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 [player: x v] by (-1)\n        else\n            change [player: x v] by (1)\n        end\n        Position\n    end\nend\n\ndefine Tick\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(x position) > (mouse x)>>>> then\n    change [sx v] by (-2.2)\n    point in direction (-90)\nend\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n    point in direction (90)\n    change [sx v] by (2.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 (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nif <(sy) > [-20]> then\n    change [sy v] by (-2)\nend\nChange Player Y By (sy)\nTest - Die\nchange [scroll x v] by (round (((Player: x) - (SCROLL X)) / (10)))\nset [add v] to (join (COLLECTED) (join [ ] (join [/] (join [ ] (COLLECTED MAX)))))\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nchange [scroll y v] by (round (((Player: y) - (SCROLL Y)) / (10)))\nif <(SCROLL Y) < [0]> then\n    set [scroll y v] to [0]\nend\nPosition\nif <(Player: y) < [-180]> then\n    set [exit v] to [Die]\nend\nif <touching (trampolines v)?> then\n    set [sy v] to [35]\nend\n\ndefine Game On\nset [player: x v] to (Spawn X)\nset [player: y v] to (Spawn Y)\nset [scroll x v] to (Spawn X)\nset [scroll y v] to (Spawn Y)\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset [sx v] to [0]\npoint in direction (90)\nset size to (100) %\nset [ghost v] effect to (0)\nshow\n\ndefine Test - Die\nif <touching (obstacles v)?> then\n    set [exit v] to [Die]\nend\n\ndefine Game - Win\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\nbroadcast (New Start v)\nchange [level v] by (1)\nwait (1) seconds\n\ndefine Game - Die\nhide\nbroadcast (die v)\nset [exit v] to []\nrepeat (1)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\n    create clone of (sprite3 v)\nend\nclear graphic effects\nhide\nwait (0.25) seconds\n\ndefine Position\ngo to x: ((Player: x) - (SCROLL X)) y: ((Player: y) - (SCROLL Y))\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    Game On\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v)\n    end\n    if <(EXIT) = [Win]> then\n        Game - Win\n    else\n        Game - Die\n    end\nend\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\ngo [backward v] (1) layers\n\nwhen flag clicked\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen flag clicked\nset [spawn y v] to [0]\nset [spawn x v] to [0]\n\nwhen flag clicked\nswitch costume to (playergrey_roll v)\nset [level v] to [1]\n\nset rotation style [left-right v]\n\nwhen flag clicked\ngo to x: (0) y: (0)\nrepeat (20)\n\ncreate clone of (_myself_ v)\ncreate clone of (_myself_ v)\n\nhide\nwait (0.05) seconds\nshow\nwait (0.05) seconds\n\nwhen I receive [fini  v]\nstop [this script v]\n\n@Platforms\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Platforms: x) - (SCROLL X)) ((Platforms: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [platforms: x v] to [0]\nset [platforms: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (1 1 v)\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\nend\nif <(LEVEL) = [2]> then\n    switch costume to (level 2 platforme 1 v)\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\nend\n\nhide\n\nswitch costume to (level 2 platforme 1 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\ngo [forward v] (2) layers\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone At x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [platforms: x v] by (x)\nchange [platforms: y v] by (y)\nnext costume\n\nwhen flag clicked\nset [level v] to [1]\nbroadcast (new start v)\n\nwhen flag clicked\nforever\n\nbroadcast (Setup v)\n\n@Obstacles\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Danger: x) - (SCROLL X)) ((Danger: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [danger: x v] to [0]\nset [danger: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (1 1 v)\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\nend\nif <(LEVEL) = [2]> then\n    switch costume to (level 2 pic de platforme 1 et maintenant \( que g tres mal ecrit \) je vais mettre plein de charactere pour que sa fasse un super super super super long costume  v)\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\nend\n\nhide\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\n    go to [back v] layer\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 [danger: x v] by (x)\nchange [danger: y v] by (y)\ngo to [back v] layer\nnext costume\n\ngo to [front v] layer\n\nwhen I receive [fini  v]\nstop [this script v]\n\n@Exit Portal\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Exit Portal: x) - (SCROLL X)) ((Exit Portal: y) - (SCROLL Y))\nif <<(COLLECTED) = (COLLECTED MAX)> or <(COLLECTED MAX) < (COLLECTED)>> then\n    switch costume to (open portal v)\n    if <touching (player v)?> then\n        set [exit v] to [Win]\n        set [spawn x v] to [0]\n        set [spawn y v] to [0]\n    end\nelse\n    switch costume to (closed portal v)\nend\n\nwhen I receive [setup v]\nhide\nset [exit portal: x v] to [0]\nset [exit portal: y v] to [0]\nif <(LEVEL) = [1]> then\n    Clone At x: [2080] y: [-30]\nend\nif <(LEVEL) = [2]> then\n    Clone At x: [3150] y: [-90]\nend\n\nset [collected v] to [0]\n\ndefine Position (x) (y)\ngo [backward v] (99) layers\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 [exit portal: x v] to (x)\nset [exit portal: y v] to (y)\n\nwhen I receive [open portal v]\nswitch costume to (exit open v)\n\n\n\nwhen I receive [tick v]\nif <<(COLLECTED) = (COLLECTED MAX)> or <(COLLECTED MAX) < (COLLECTED)>> then\n    if <<touching (player v)?> and <(LEVEL) = [2]>> then\n        broadcast (FINI  v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [fini  v]\nstop [this script v]\n\n@Collectables\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nset [collecte/collecte max v] to (join (COLLECTED) (join [/] (COLLECTED MAX)))\nif <(type) = [clone]> then\n    if <touching (player v)?> then\n        change [collected v] by (1)\n        if <(COLLECTED) = (COLLECTED MAX)> then\n            broadcast (Open Portal v)\n        end\n        delete this clone\n    end\nend\n\nwhen I receive [setup v]\nset [type v] to [OG]\nhide\nset [collected max v] to [0]\nset [collected v] to [0]\nswitch costume to (coin v)\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    Clone at x: [150] y: [0]\n    Clone at x: [357] y: [10]\n    Clone at x: [435] y: [10]\n    Clone at x: [640] y: [10]\n    Clone at x: [765] y: [10]\n    Clone at x: [885] y: [40]\n    Clone at x: [1000] y: [100]\n    Clone at x: [1300] y: [100]\n    Clone at x: [1300] y: [50]\n    Clone at x: [1300] y: [0]\n    Clone at x: [1300] y: [-50]\n    Clone at x: [1625] y: [150]\n    Clone at x: [1660] y: [150]\n    Clone at x: [1700] y: [150]\n    Clone at x: [1940] y: [-35]\nend\nif <(LEVEL) = [2]> then\n    Clone at x: [694] y: [65]\n    Clone at x: [505] y: [170]\n    Clone at x: [653] y: [193]\n    Clone at x: [815] y: [-30]\n    Clone at x: [1155] y: [-30]\n    Clone at x: [1445] y: [270]\n    Clone at x: [1665] y: [150]\n    Clone at x: [1875] y: [110]\n    Clone at x: [2300] y: [-90]\n    Clone at x: [2350] y: [-90]\n    Clone at x: [2400] y: [-90]\n    Clone at x: [2450] y: [-90]\n    Clone at x: [2500] y: [-90]\n    Clone at x: [2550] y: [-90]\n    Clone at x: [2600] y: [-90]\n    Clone at x: [2650] y: [-90]\n    Clone at x: [2700] y: [-90]\n    Clone at x: [2750] y: [-90]\n    Clone at x: [2800] y: [-90]\n    Clone at x: [2850] y: [-90]\n    Clone at x: [2900] y: [-90]\n    Clone at x: [2950] y: [-90]\n    Clone at x: [3000] y: [-90]\n    Clone at x: [3050] y: [-90]\n    Clone at x: [3100] y: [-90]\nend\n\ndefine Position (x) (y)\nif <(type) = [clone]> then\n    go to x: (x) y: (y)\n    if <<(x) = (x position)> and <(y) = (y position)>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset size to (100) %\nset [x v] to (x)\nset [y v] to (y)\nchange [collected max v] by (1)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nset [type v] to [clone]\n\nwhen flag clicked\nset [aus v] to [0]\n\nwhen I receive [fini  v]\nstop [this script v]\n\nwhen I receive [fini  v]\nstop [this script v]\n\n@Sprite1\n\n@Platforms decore \n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Platforms: x) - (SCROLL X)) ((Platforms: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [platforms: x v] to [0]\nset [platforms: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (1 1 v)\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\nend\nif <(LEVEL) = [2]> then\n    switch costume to (level 2 platforme 1 v)\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\n    Clone At x: [480] y: [0]\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    go [backward v] (1) layers\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 [platforms: x v] by (x)\nchange [platforms: y v] by (y)\nnext costume\n\nwhen flag clicked\nset [level v] to [1]\nbroadcast (new start v)\n\nwhen I receive [fini  v]\nstop [this script v]\n\n@Sprite2\n\nwhen I receive [fini  v]\nstop [this script v]\n\n@Sprite3\n\nwhen I start as a clone\ngo to (player v)\nset size to (pick random (20) to (50)) %\nswitch costume to (2 v)\nshow\nrepeat (10)\n    point in direction (pick random (-180) to (180))\n    set [x v] to ((pick random (1) to (10)) * ([cos v] of (direction) ))\n    set [y v] to ((pick random (-25) to (25)) * ([sin v] of (direction) ))\n    repeat until <touching (_edge_ v)?>\n        change [y v] by (-1)\n        change x by (x)\n        change y by (y)\n    end\n    delete this clone\nend\nhide\n\nwhen I receive [fini  v]\nstop [this script v]\n\nwhen flag clicked\nforever\n    hide\nend\n\n@Sprite4\n\ngo to x: (0) y: (0)\n\nwhen flag clicked\nhide\nshow variable [collecte/collecte max v]\ngo to [front v] layer\ngo to x: (-600) y: (0)\nforever\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\nend\n\nwhen I receive [fini  v]\nshow\nhide variable [collecte/collecte max v]\nrepeat until <(x position) = [0]>\n    change x by ((0) - ((x position) / (5)))\nend\n\nwhen [timer v] > (0.1)\nshow\nhide variable [collecte/collecte max v]\nrepeat until <(x position) = [0]>\n    change x by ((0) - ((x position) / (5)))\nend\n\nwhen flag clicked\nforever\n    reset timer\nend\n\n