The dark Forest || A mobile Scrolling Platformer

Instructions: The dark Forest || A mobile Scrolling Platformer\n-------------------------------------------------------------------------\n                                    Instructions \n                                    ----------------\n- Jump over the dangers and collect the coins to open checkpoints!\n- Try to be as fast as you can to get the world record!\n- Have fun!\n\n- Springe über die Gefahren und sammele die Münzen ein, um Checkpoints zu öffnen!\n- Versuche, so schnell wie möglich zu sein, um den Weltrekord zu holen!\n- Viel Spaß!\n\n                                        News\n                                    ----------------\n13.10.20 - Updates and 86 Likes\n07.10.20 - 1st German Trending: Yay\n05.10.20 - share\n\n                                      Credits\n                                    ----------------\n- @griffpatch for the scrolling Platformer Tutorial\n\nPlease Like, Fav and Follow if you like it :)\nBitte Liken, Faven und folgen, wenn du dieses Spiel magst :)\n\n- Part 1 -\n\n@AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun @AsterixDavid @Scrolling @Platformer @Game @Fun @Speedrun

@Stage\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 flag clicked\nhide variable [☁ record v]\nhide variable [time v]\n\nwhen I receive [play game v]\nshow variable [☁ record v]\nshow variable [time v]\n\n@INTRO\n\nwhen flag clicked\nset [cstat v] to [Background]\nset [stat v] to [Background]\nhide\nset [v1 v] to [0]\nswitch costume to (1 v)\nrepeat (3)\n    set [v1 v] to [0]\n    create clone of (_myself_ v)\n    wait (0.2) seconds\n    next costume\nend\nset [cstat v] to [SideBackground]\nset [stat v] to [SideBackground]\nhide\nwait (0.3) seconds\nset [v1 v] to [0]\nswitch costume to (1b v)\nrepeat (3)\n    set [v1 v] to [0]\n    create clone of (_myself_ v)\n    wait (0.2) seconds\n    next costume\nend\nset [cstat v] to [BigBack]\nset [stat v] to [BigBack]\nhide\nwait (0.09) seconds\nset [v1 v] to [0]\nswitch costume to (back1 v)\nset [v1 v] to [0]\ncreate clone of (_myself_ v)\nset [cstat v] to [Raster]\nset [stat v] to [Raster]\nhide\nwait (0.09) seconds\nset [v1 v] to [0]\nswitch costume to (raster v)\nset [v1 v] to [0]\ncreate clone of (_myself_ v)\nset [cstat v] to [Logo]\nset [stat v] to [Logo]\nhide\nset [v1 v] to [0]\nswitch costume to (logo3 v)\nset [v1 v] to [0]\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nforever\n    set [v1 v] to ((v1) * (0.8))\nend\n\nset size to (100) %\n\nwhen I start as a clone\nif < (cSTAT) contains [Background]?> then\n    show\n    set [v1 v] to [0]\n    set size to (1) %\n    go to x: (0) y: (0)\n    set [v1 v] to [19]\n    repeat (50)\n        change size by (v1)\n        if <not < (STAT) contains [Background]?>> then\n            delete this clone\n        end\n    end\n    forever\n        if <not < (STAT) contains [Background]?>> then\n            delete this clone\n        end\n    end\nend\n\nstop [other scripts in sprite v]\ndelete this clone\n\nwhen I start as a clone\nif < (cSTAT) contains [BigBack]?> then\n    go to [front v] layer\n    show\n    set [v2 v] to [0]\n    set size to (100) %\n    go to x: (0) y: (0)\n    set [v2 v] to [70]\n    repeat (15)\n        change y by (v2)\n        set [v2 v] to ((v2) * (0.8))\n    end\n    delete this clone\nend\n\nchange size by (10)\n\nwhen I start as a clone\nif < (cSTAT) contains [Raster]?> then\n    clear graphic effects\n    go to [back v] layer\n    show\n    set [v2 v] to [0]\n    switch costume to (point v)\n    set size to (200) %\n    switch costume to (raster v)\n    go to x: (0) y: (0)\n    set [v2 v] to [70]\n    forever\n        change x by (-2)\n        change y by (-2)\n    end\nend\n\nchange y by (v2)\nset [v2 v] to ((v2) * (0.8))\n\ndelete this clone\n\nwait (0.09) seconds\n\nwhen I start as a clone\nif < (cSTAT) contains [Logo]?> then\n    set size to (200) %\n    clear graphic effects\n    go to [front v] layer\n    show\n    go to x: (0) y: (0)\n    forever\n        point in direction ((([tan v] of ((timer) * (100)) ) * (10)) + (90))\n    end\nend\n\nset [v2 v] to [70]\n\nchange x by (2)\nchange y by (-2)\n\nwhen I start as a clone\nif < (cSTAT) contains [Logo]?> then\n    wait (3) seconds\n    repeat (10)\n        change size by (10)\n        change [ghost v] effect by (10)\n        change [brightness v] effect by (10)\n    end\n    stop [other scripts in sprite v]\n    broadcast (Start v)\n    delete this clone\nend\n\nwhen I start as a clone\nif < (cSTAT) contains [Raster]?> then\n    wait (3) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n        change [brightness v] effect by (10)\n    end\n    stop [other scripts in sprite v]\n    delete this clone\nend\n\nchange size by (-10)\n\nwhen flag clicked\nhide\n\nset [☁ record v] to [17.853]\nset [☁ record v] to (☁ Record)\n\n@DangerTurn\n\nwhen I receive [green v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <(round (high)) = [0]> then\n    set [high v] to [50]\nend\nset [high v] to ((high) * (0.8))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [clon? v] to [NO]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x [100] y [-50]\n    Clone at x [2289] y [265]\n    Clone at x [2454] y [265]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x [0] y [300]\n        Clone at x [460] y [0]\n    else\n        switch costume to (level 3 1 v)\n    end\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <(clon?) = [JES]> then\n    if <<(x) = (x position)> and <(y) = (y position)>> then\n        show\n    else\n        hide\n    end\n    turn right (high) degrees\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\nchange [x v] by (x)\n\nwhen I receive [intro? v]\nhide\n\nwhen I start as a clone\nset [clon? v] to [JES]\n\nnext costume\n\nset [checkx v] to [0]\n\nwhen flag clicked\nhide\n\n@BouncePads\n\nwhen I receive [green v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [clon? v] to [NO]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x [1262] y [-30]\n    Clone at x [3416] y [-30]\n    Clone at x [3590] y [-30]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x [0] y [300]\n        Clone at x [460] y [0]\n    else\n        switch costume to (level 3 1 v)\n    end\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <(clon?) = [JES]> then\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 [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\nnext costume\n\nwhen I receive [intro? v]\nhide\n\nwhen I start as a clone\nset [clon? v] to [JES]\n\nset [checkx v] to [0]\n\nif <(transparence) < [100]> then\n\n\nwhen flag clicked\nclear graphic effects\n\nset [ghost v] effect to (0)\n\nwhen flag clicked\nhide\n\nchange [x v] by (360)\n\n@Player\n\nwhen flag clicked\nhide\n\nwhen I receive [green v]\nhide\ngo to [front v] layer\n\nwhen I receive [play game v]\nset [time v] to [0]\nreset timer\nset [level v] to [1]\nforever\n    broadcast (reset v) and wait\n    broadcast (setup v) and wait\n    \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 (CheckX)\nset [y v] to (CheckY)\nset [scroll x v] to (CheckX)\nset [scroll y v] to (CheckY)\nset [sy v] to [0]\nset [time v] to (Checktime)\nreset timer\nset [sx v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset size to (100) %\nset [ghost v] effect to (0)\nshow\n\ndefine Tick\nif <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    change [sx v] by (-2)\nend\nif <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [sx v] by (2)\nend\nset [sx v] to ((sx) * (0.8))\nif <([abs v] of (sx) ) > [0.8]> then\n    Change Player X by (round (sx))\nend\nif <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nif <touching color (#ffde00)?> then\n    set [sy v] to [26]\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 (((x) - (SCROLL X)) / (10)))\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) < [-103]> then\n    set [scroll y v] to [-103]\nend\nPosition\nif <(y) < [-180]> then\n    set [exit v] to [die]\nend\nif <(SCROLL X) > [3838]> then\n    set [scroll x v] to [3838]\nend\nif <not <(SCROLL X) > [3837]>> then\n    set [time v] to ((timer) + (Checktime))\nelse\n    if <(TIME) < (☁ Record)> then\n        set [☁ record v] to (TIME)\n        set [☁ record v] to (☁ Record)\n    end\nend\n\ndefine Change Player Y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat 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]\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 (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (20))>>> then\n        if <(sx) > [0]> then\n            set [sx v] to [-16]\n        else\n            set [sx v] to [16]\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\nrepeat (5)\n    hide\n    wait (0.1) seconds\n    show\n    wait (0.1) seconds\nend\nhide\nwait (0.5) seconds\n\nset [exit v] to []\n\ndefine Test - Die\nif <touching (danger v)?> then\n    set [exit v] to [die]\nend\nif <touching color (#9d9d9d)?> then\n    set [exit v] to [die]\nend\n\ndefine Game win\nchange [level v] by (1)\n\nrepeat (50)\n    point towards (exit v)\n    turn right (65) degrees\n    move ((distance to [exit v]) / (2)) steps\n    change size by (-1)\n    change [ghost v] effect by (2)\nend\nhide\n\nwait (1) seconds\n\nwhen I receive [start v]\nbroadcast (Green v) and wait\nbroadcast (Play Game v) and wait\n\nwhen flag clicked\nhide\n\n@Platforms\n\nwhen I receive [green v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\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)\n    Clone at x [360] y [0]\n    Clone at x [500] y [0]\n    Clone at x [500] y [0]\n    Clone at x [500] y [0]\n    Clone at x [500] y [0]\n    Clone at x [900] y [0]\n    Clone at x [500] y [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x [0] y [300]\n        Clone at x [460] y [0]\n    else\n        switch costume to (level 1 1 v)\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 [intro? v]\nhide\n\nwhen flag clicked\nhide\n\n@Exit\n\nwhen I receive [green v]\nset [checktime v] to [0]\nset [checkx v] to [0]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<touching (player v)?> and <(costume [number v]) = [2]>> then\n    set [checkx v] to (x)\n    set [checktime v] to (TIME)\n    reset timer\n    set [checky v] to (y)\n    switch costume to (open2 v)\n    set [true? v] to [true]\n    set [collected v] to [0]\nend\nif <<(COLLECTED) = (CollectCheck)> and <(True?) = [false]>> then\n    switch costume to (open v)\nelse\n    switch costume to (closed v)\n    if <(True?) = [true]> then\n        switch costume to (open2 v)\n    end\nend\n\nwhen I receive [play game v]\nhide\nset [collected v] to [0]\nset [x v] to [0]\nset [true? v] to [false]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (closed v)\n    set [collectcheck v] to [2]\n    Clone at x [614] y [-21]\n    set [collectcheck v] to [3]\n    Clone at x [1951] y [-30]\n    set [collectcheck v] to [4]\n    Clone at x [3119] y [-30]\nelse\n    if <(LEVEL) = [2]> then\n        Clone at x [786] y [490]\n    else\n        set [x v] to [-99999]\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]\n\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 [intro? v]\nhide\n\nchange [level v] by (1)\n\nwhen flag clicked\nhide\n\n@Platforms2\n\nwhen I receive [green v]\nhide\n\nwhen I receive [tick v]\ngo to [back v] layer\nPosition ((x) - ((SCROLL X) / (2))) (y)\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)\n    Clone at x [360] y [0]\n    Clone at x [360] y [0]\n    Clone at x [360] y [0]\n    Clone at x [360] y [0]\n    Clone at x [360] y [0]\n    Clone at x [360] y [0]\n    Clone at x [360] y [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x [0] y [300]\n        Clone at x [460] y [0]\n    else\n        switch costume to (level 1 1 v)\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 [intro? v]\nhide\n\nwhen flag clicked\nhide\n\n@Danger\n\nwhen I receive [green v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\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)\n    Clone at x [360] y [0]\n    Clone at x [690] y [0]\n    Clone at x [390] y [0]\n    Clone at x [390] y [0]\n    Clone at x [390] y [0]\n    Clone at x [700] y [0]\n    Clone at x [700] y [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 2 1 v)\n        Clone at x [0] y [300]\n        Clone at x [460] y [0]\n    else\n        switch costume to (level 3 1 v)\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 [intro? v]\nhide\n\nwhen flag clicked\nhide\n\n@Collectables\n\nwhen I receive [green v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <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\nend\n\nwhen I receive [play game 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 ( v)\n    Clone at x [-207] y [9]\n    Clone at x [504] y [-1]\n    Clone at x [909] y [11]\n    Clone at x [1404] y [185]\n    Clone at x [1750] y [56]\n    Clone at x [2081] y [123]\n    Clone at x [2359] y [356]\n    Clone at x [2711] y [170]\n    Clone at x [3025] y [56]\n    Clone at x [3976] y [46]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to ( v)\n        Clone at x [-115] y [-70]\n        Clone at x [94] y [-8]\n        Clone at x [-67] y [79]\n        Clone at x [-161] y [177]\n        Clone at x [145] y [254]\n    end\nend\nset [x v] to [-999999]\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]\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\nwhen I receive [intro? v]\nhide\n\nwhen flag clicked\nhide\n\n@Thumbnail\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\n\n