Air - a mobile scrolling platformer
@Stage\n\nwhen stage clicked\n\nset [mouse v] to (join ((mouse x) + (scrollX)) (join [, ] ((mouse y) + (scrollY))))\nshow variable [mouse v]\n\nwhen [h v] key pressed\n\nhide variable [mouse v]\n\nwhen flag clicked\nswitch backdrop to (airbg v)\n\nwhen I receive [checkworldwidepointhighscore v]\nif <<(gernrallyCollected) = ((☁ highscoreCollectedCoins) + (1))> and <(hs) = [false]>> then\n    set [hs v] to [true]\n    SendMessage [gotWWPHS]\nend\n\nwhen I receive [checknewskin v]\nif <(gernrallyCollected) = [6]> then\n    SendMessage [newSkinBlue]\nelse\n    if <(gernrallyCollected) = [10]> then\n        SendMessage [newSkinHat]\n    else\n        if <(gernrallyCollected) = [24]> then\n            SendMessage [newSkinGlasses]\n        else\n            if <(gernrallyCollected) = [36]> then\n                SendMessage [newSkinFlower]\n            else\n                if <(gernrallyCollected) = [68]> then\n                    SendMessage [newSkinCat]\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [coincollectcheck v]\nbroadcast (checkWorldWidePointHighscore v) and wait\nbroadcast (checkNewSkin v)\n\n@Blank\n\n@player\n\nwhen I receive [greenflag v]\nhide\ngo to [front v] layer\ngo [backward v] (1) layers\n\nwhen I receive [playgame v]\nset [level v] to [1]\nforever\n    broadcast (reset v) and wait\n    broadcast (Setup v) and wait\n    gameOn\n    repeat until <(exit) > []>\n        wait until <(pause) = [false]>\n        tick\n        broadcast (Tick v) and wait\n        go to [front v] layer\n    end\n    if <(exit) = [win]> then\n        game:win\n    else\n        if <(exit) = [die]> then\n            game:die\n        else\n            if <(exit) = [fall]> then\n        end\n    end\nend\n\ndefine gameOn\npoint in direction (90)\nset [pause v] to [false]\nset [x v] to [0]\nset [y v] to [0]\nset [scrollx v] to [0]\nset [scrolly v] to [0]\nset [sy v] to [0]\nset [sx v] to [0]\nset [inair v] to [0]\nset [exit v] to []\nset size to (100) %\nset [ghost v] effect to (0)\nshow\n\ndefine tick\nswitch costume to (join (skin) [-normal])\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n    switch costume to (join (skin) [-left])\n    change [sx v] by (-2)\nend\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    switch costume to (join (skin) [-right])\n    change [sx v] by (2)\nend\nset [sx v] to ((sx) * (0.8))\nif <([abs v] of (sx) ) > [0.9]> then\n    changePlayerXby (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 <(inAir) < [4]> then\n        set [sy v] to [16]\n    end\nend\nif <(sy) > [-20]> then\n    change [sy v] by (-2)\nend\nchangeplayerYby (sy)\ntest:die\nset [scrollx v] to (x)\nif <(scrollX) < [0]> then\n    set [scrollx v] to [0]\nend\nchange [scrolly v] by (round (((y) - (scrollY)) / (10)))\nif <(scrollY) < [0]> then\n    set [scrolly v] to [0]\nend\nposition\nif <(y) < [-180]> then\n    set [exit v] to [fall]\nend\nif <touching (bouncy v)?> then\n    if <(inAir) < [4]> then\n        set [sy v] to [36]\n    end\nend\n\ndefine changeplayerYby (py)\nchange [y v] by (py)\nchange [inair v] by (1)\nposition\nrepeat until <not <touching (platfroms v)?>>\n    if <(py) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [inair v] to [0]\n    end\n    position\n    set [sy v] to [0]\nend\n\ndefine position\ngo to x: ((x) - (scrollX)) y: ((y) - (scrollY))\n\ndefine changePlayerXby (px)\nchange [x v] by (px)\nposition\nif <touching (platfroms v)?> then\n    repeat (12)\n        change [y v] by (1)\n        position\n        if <not <touching (platfroms 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 <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        if <(px) > [0]> then\n            set [sx v] to [-16]\n        else\n            set [sx v] to [16]\n        end\n        set [inair v] to [0]\n    else\n        set [sx v] to [0]\n    end\n    repeat until <not <touching (platfroms v)?>>\n        if <(px) > [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 (danger v)?> or <touching (dangerspikes v)?>> then\n    set [exit v] to [die]\nend\n\ndefine game:win\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\nchange [level v] by (1)\nwait (1) seconds\n\nchange [collected v] by (1)\n\nwhen flag clicked\nset [skin v] to [default]\nhide\n\nwhen I start as a clone\nset [ghost v] effect to (0)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [menu v]\ngo to [back v] layer\n\nset [skin v] to [default]\n\nset [skin v] to [blue]\n\nset [skin v] to [orange]\n\nset [skin v] to [cat]\n\nset [skin v] to [hat]\n\nset [skin v] to [glasses]\n\nset [skin v] to [flower]\n\nset [☁ highscorecollectedcoins v] to [24]\nset [☁ highscoretime v] to [240]\n\nwhen flag clicked\nset [music v] to (pick random (2) to (4))\nforever\n    play sound (music) until done\nend\n\n@Platfroms\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\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 (lev1-1 v)\n    cloneAtXY [360] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [0] [424]\n    cloneAtXY [560] [0]\nelse\n    if <(level) = [2]> then\n        switch costume to (lev2-1 v)\n        cloneAtXY [424] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [600] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [800] [0]\n    else\n        if <(level) = [3]> then\n            switch costume to (lev3-1 v)\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n        else\n            if <(level) = [4]> then\n                switch costume to (lev4-1 v)\n                cloneAtXY [600] [0]\n                cloneAtXY [600] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n            else\n                if <(level) = [5]> then\n                    switch costume to (lev5-1 v)\n                    cloneAtXY [600] [0]\n                    cloneAtXY [0] [724]\n                    cloneAtXY [900] [0]\n                    cloneAtXY [600] [0]\n                    cloneAtXY [600] [0]\n                else\n                    if <(level) = [6]> then\n                        switch costume to (lev6-1 v)\n                        broadcast (endlv v)\n                    end\n                end\n            end\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 cloneAtXY (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nbroadcast (greenFlag v) and wait\nbroadcast (playGame v) and wait\n\nset [pause v] to [true]\n\nset [pause v] to [false]\n\ndefine SendMessage (content)\nset [messagecontent v] to (content)\nbroadcast (message v) and wait\n\ndefine SendLongMessage (content)\nset [messagecontent v] to (content)\nbroadcast (messageLong v) and wait\n\nwhen I receive [endlv v]\nwait (6) seconds\nSendLongMessage [end]\n\n@Exit\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\nif <<(costume [name v]) = [Portal-open]> and <touching (player v)?>> then\n    set [exit v] to [win]\nend\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nset [collected v] to [0]\nif <(level) = [1]> then\n    switch costume to (portal-closed v)\n    cloneAtXY [4882] [493]\nelse\n    if <(level) = [2]> then\n        switch costume to (portal-closed v)\n        cloneAtXY [3908] [54]\n    else\n        if <(level) = [3]> then\n            switch costume to (portal-closed v)\n            cloneAtXY [4588] [279]\n        else\n            if <(level) = [4]> then\n                switch costume to (portal-closed v)\n                cloneAtXY [4758] [62]\n            else\n                if <(level) = [5]> then\n                    switch costume to (portal-closed v)\n                    cloneAtXY [-190] [41]\n                else\n                    if <(level) = [6]> then\n                        switch costume to (portal-closed v)\n                        cloneAtXY [-99999] [-99999]\n                    end\n                end\n            end\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 cloneAtXY (x) (y)\nset [x v] to (x)\nset [y v] to (y)\n\nwhen I receive [openportal v]\nswitch costume to (portal-open v)\n\n@Collectables\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\nif <<touching (player v)?> and <(coinsCloneIDhide) = [-1]>> then\n    change [collected v] by (1)\n    change [gernrallycollected v] by (1)\n    if <(collected) = (collectedMax)> then\n        broadcast (openPortal v)\n    end\n    set [coinscloneidhide v] to (cloneID)\n    broadcast (coinsHide v)\n    broadcast (coinCollectCheck v)\nend\n\nwhen I receive [setup v]\nset size to (100) %\nhide\nset [cloneid v] to [0]\nset [coinscloneidhide v] to [-1]\nset [x v] to [0]\nset [y v] to [0]\nset [collectedmax v] to [0]\nset [collected v] to [0]\nif <(level) = [1]> then\n    switch costume to (collectabledot v)\n    cloneAtXY [-167] [83]\n    cloneAtXY [136] [89]\n    cloneAtXY [609] [257]\n    cloneAtXY [1136] [137]\n    cloneAtXY [1401] [137]\n    cloneAtXY [1998] [64]\n    cloneAtXY [2922] [107]\n    cloneAtXY [4142] [213]\n    cloneAtXY [4010] [391]\n    cloneAtXY [4564] [496]\nelse\n    if <(level) = [2]> then\n        switch costume to (collectabledot v)\n        cloneAtXY [-83] [370]\n        cloneAtXY [383] [342]\n        cloneAtXY [1022] [324]\n        cloneAtXY [1505] [96]\n        cloneAtXY [2125] [97]\n        cloneAtXY [2561] [59]\n        cloneAtXY [2750] [59]\n        cloneAtXY [2923] [59]\n        cloneAtXY [3253] [38]\n        cloneAtXY [3647] [30]\n    else\n        if <(level) = [3]> then\n            switch costume to (collectabledot v)\n            cloneAtXY [-116] [27]\n            cloneAtXY [505] [68]\n            cloneAtXY [702] [90]\n            cloneAtXY [1115] [152]\n            cloneAtXY [1268] [211]\n            cloneAtXY [1412] [302]\n            cloneAtXY [1881] [267]\n            cloneAtXY [2999] [50]\n            cloneAtXY [3318] [65]\n            cloneAtXY [3931] [85]\n            cloneAtXY [4327] [59]\n        else\n            if <(level) = [4]> then\n                switch costume to (collectabledot v)\n                cloneAtXY [-175] [47]\n                cloneAtXY [247] [58]\n                cloneAtXY [1246] [96]\n                cloneAtXY [1658] [75]\n                cloneAtXY [2484] [93]\n                cloneAtXY [3028] [-72]\n                cloneAtXY [4027] [105]\n                cloneAtXY [4561] [78]\n            else\n                if <(level) = [5]> then\n                    switch costume to (collectabledot v)\n                    cloneAtXY [2685] [1091]\n                end\n            end\n        end\n    end\nend\nset [x v] to [-99999]\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 cloneAtXY (x) (y)\nset [x v] to (x)\nset [y v] to (y)\nchange [collectedmax v] by (1)\nchange [cloneid v] by (1)\ncreate clone of (_myself_ v)\n\ndefine SendMessage (content)\nset [messagecontent v] to (content)\nbroadcast (message v) and wait\n\nbroadcast (checkNewSkin v) and wait\n\ndefine SendLongMessage (content)\nset [messagecontent v] to (content)\nbroadcast (messageLong v) and wait\n\nwhen I receive [coinshide v]\nif <(cloneID) = (coinsCloneIDhide)> then\n    set size to (100) %\n    repeat (10)\n        change size by (-10)\n    end\n    set [coinscloneidhide v] to [-1]\n    delete this clone\nend\n\n@Danger\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\n\nwhen I receive [setup v]\ngo to [back v] layer\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(level) = [1]> then\n    switch costume to (lev1-1 v)\n    cloneAtXY [360] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [0] [424]\n    cloneAtXY [560] [0]\nelse\n    if <(level) = [2]> then\n        switch costume to (lev2-1 v)\n        cloneAtXY [424] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [600] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [800] [0]\n    else\n        if <(level) = [3]> then\n            switch costume to (lev3-1 v)\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n        else\n            if <(level) = [4]> then\n                switch costume to (lev4-1 v)\n                cloneAtXY [600] [0]\n                cloneAtXY [600] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n            else\n                if <(level) = [5]> then\n                    switch costume to (lev5-1 v)\n                    cloneAtXY [600] [0]\n                    cloneAtXY [0] [724]\n                    cloneAtXY [900] [0]\n                    cloneAtXY [600] [0]\n                    cloneAtXY [600] [0]\n                end\n            end\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 cloneAtXY (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nif <(level) = [6]> then\n    switch costume to (lev6-1 v)\nend\n\n@Decorations\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\n\nwhen I receive [setup v]\ngo to [back v] layer\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(level) = [1]> then\n    switch costume to (lev1-1 v)\n    cloneAtXY [360] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [0] [424]\n    cloneAtXY [560] [0]\nelse\n    if <(level) = [2]> then\n        switch costume to (lev2-1 v)\n        cloneAtXY [424] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [600] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [800] [0]\n    else\n        if <(level) = [3]> then\n            switch costume to (lev3-1 v)\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n        else\n            if <(level) = [4]> then\n                switch costume to (lev4-1 v)\n                cloneAtXY [600] [0]\n                cloneAtXY [600] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n            else\n                if <(level) = [5]> then\n                    switch costume to (lev5-1 v)\n                    cloneAtXY [600] [0]\n                    cloneAtXY [0] [724]\n                    cloneAtXY [900] [0]\n                    cloneAtXY [600] [0]\n                    cloneAtXY [600] [0]\n                else\n                    if <(level) = [6]> then\n                        switch costume to (lev6-1 v)\n                    end\n                end\n            end\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 cloneAtXY (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nif <(level) = [6]> then\n    switch costume to (lev6-1 v)\nend\n\n@Bouncy\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\n\nwhen I receive [setup v]\ngo to [back v] layer\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(level) = [1]> then\n    switch costume to (lev1-1 v)\n    cloneAtXY [360] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [0] [424]\n    cloneAtXY [560] [0]\nelse\n    if <(level) = [2]> then\n        switch costume to (lev2-1 v)\n        cloneAtXY [424] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [600] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [800] [0]\n    else\n        if <(level) = [3]> then\n            switch costume to (lev3-1 v)\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n        else\n            if <(level) = [4]> then\n                switch costume to (lev4-1 v)\n                cloneAtXY [600] [0]\n                cloneAtXY [600] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n            else\n                if <(level) = [5]> then\n                    switch costume to (lev5-1 v)\n                    cloneAtXY [600] [0]\n                    cloneAtXY [0] [724]\n                    cloneAtXY [900] [0]\n                    cloneAtXY [600] [0]\n                    cloneAtXY [600] [0]\n                else\n                    if <(level) = [6]> then\n                        switch costume to (lev6-1 v)\n                    end\n                end\n            end\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 cloneAtXY (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nif <(level) = [6]> then\n    switch costume to (lev6-1 v)\nend\n\n@pltf\n\nwhen flag clicked\ngo to x: (18) y: (-52)\nset [ghost v] effect to (100)\nshow\n\nwhen I receive [showmbp v]\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\n\nwhen I receive [malkeplace v]\nglide (0.6) secs to x: (158) y: (-52)\n\nwhen I receive [greenflag v]\nhide\n\n@air\n\nwhen flag clicked\nglide (1) secs to x: (0) y: (0)\nwait (2) seconds\nglide (1) secs to x: (0) y: (55)\nwait (1) seconds\nbroadcast (showmbp v) and wait\nwait (2) seconds\nbroadcast (malkeplace v) and wait\nwait (1) seconds\nbroadcast (showscroll v) and wait\nwait (2) seconds\nbroadcast (showlw_2424 v) and wait\nwait (4) seconds\nbroadcast (overlay v)\nwait (1) seconds\nbroadcast (greenFlag v) and wait\nbroadcast (playGame v)\n\nwhen flag clicked\nshow\n\nwhen I receive [greenflag v]\nhide\n\n@am\n\nwhen flag clicked\ngo to x: (-93) y: (-52)\nset [ghost v] effect to (100)\nshow\n\nwhen I receive [showmbp v]\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\n\nwhen I receive [greenflag v]\nhide\n\n@lw2424\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (-1) y: (-128)\npoint in direction (90)\nhide\nset [pixelate v] effect to (200)\n\nwhen I receive [showlw_2424 v]\ngo to [front v] layer\nwait (0.5) seconds\nshow\nrepeat (20)\n    change [pixelate v] effect by (-10)\nend\nwait (2) seconds\nrepeat (10)\n    turn right (6) degrees\nend\nwait (0.01) seconds\nrepeat (10)\n    turn left (6) degrees\nend\nwait (0.01) seconds\nrepeat (10)\n    turn right (-6) degrees\nend\nwait (0.01) seconds\nrepeat (10)\n    turn left (-6) degrees\nend\nrepeat (20)\n    change [pixelate v] effect by (-10)\nend\nhide\n\nwhen I receive [greenflag v]\nhide\n\n@scr\n\nwhen flag clicked\ngo to x: (29) y: (-164)\nhide\n\nwhen I receive [showscroll v]\nshow\nglide (0.6) secs to x: (29) y: (-52)\n\nwhen I receive [greenflag v]\nhide\n\n@Overlay\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (100)\nhide\n\nwhen I receive [overlay v]\nshow\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\nwait (1) seconds\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\n\n@DangerSpikes\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nset size to (60) %\nposition ((x) - (scrollX)) ((y) - (scrollY))\nif <touching (player v)?> then\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(level) = [4]> then\n    switch costume to (spikes v)\n    cloneAtXY [1102] [-127]\n    cloneAtXY [1398] [-127]\nend\nset [x v] to [-99999]\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 cloneAtXY (x) (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\ngo to [back v] layer\nforever\n    wait (2) seconds\n    repeat (25)\n        change [y v] by (10)\n    end\n    say [Hähä] for (2) seconds\n    repeat (25)\n        change [y v] by (-10)\n    end\nend\n\n@menu-contuine\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen I receive [menu v]\nshow\n\nwhen I receive [menuclose v]\nhide\n\nwhen this sprite clicked\nbroadcast (menuclose v)\nset [pause v] to [false]\n\n@ShinePlatforms\n\nwhen I receive [greenflag v]\nhide\n\nwhen I receive [tick v]\nposition ((x) - (scrollX)) ((y) - (scrollY))\nif <(oops) = [false]> then\n    set [ghost v] effect to (0)\nelse\n    set [ghost v] effect to (100)\nend\nif <<touching (player v)?> and <(oops) = [false]>> then\n    set [oops v] to [true]\n    repeat (25)\n        change [ghost v] effect by (4)\n    end\n    broadcast (check v)\nend\n\nwhen I receive [setup v]\ngo to [back v] layer\nhide\nset [x v] to [0]\nset [oops v] to [false]\nset [y v] to [0]\nif <(level) = [1]> then\n    switch costume to (lev1-1 v)\n    cloneAtXY [360] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [800] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [600] [0]\n    cloneAtXY [0] [424]\n    cloneAtXY [560] [0]\nelse\n    if <(level) = [2]> then\n        switch costume to (lev2-1 v)\n        cloneAtXY [424] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [600] [0]\n        cloneAtXY [800] [0]\n        cloneAtXY [800] [0]\n    else\n        if <(level) = [3]> then\n            switch costume to (lev3-1 v)\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n            cloneAtXY [600] [0]\n        else\n            if <(level) = [4]> then\n                switch costume to (lev4-1 v)\n                cloneAtXY [600] [0]\n                cloneAtXY [600] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n                cloneAtXY [800] [0]\n            else\n                if <(level) = [5]> then\n                    switch costume to (lev5-1 v)\n                    cloneAtXY [600] [0]\n                    cloneAtXY [0] [724]\n                    cloneAtXY [900] [0]\n                    cloneAtXY [600] [0]\n                    cloneAtXY [600] [0]\n                else\n                    if <(level) = [6]> then\n                        switch costume to (lev6-1 v)\n                    end\n                end\n            end\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 cloneAtXY (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [check v]\nwait until <not <touching (player v)?>>\nset [oops v] to [false]\n\nif <(level) = [6]> then\n    switch costume to (lev6-1 v)\nend\n\n@PauseButton\n\nwhen flag clicked\nswitch costume to (kostüm2 v)\nhide\n\nwhen this sprite clicked\nset [pause v] to [true]\nbroadcast (menu v)\n\nwhen I receive [playgame v]\nshow\n\n@Menu\n\nwhen flag clicked\nhide\ngo to x: (36) y: (28)\n\nwhen I receive [menu v]\nshow\n\nwhen I receive [menuclose v]\nhide\n\n@menu-reload\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen I receive [menu v]\nif <not <(level) = [6]>> then\n    switch costume to (menu_reload v)\n    show\nelse\n    switch costume to (menu_reload_big v)\n    show\nend\n\nwhen I receive [menuclose v]\nhide\n\nwhen this sprite clicked\nbroadcast (menuclose v)\nset [pause v] to [false]\nset [exit v] to [fall]\n\n@menu_lw_skinshop\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen I receive [menu v]\nshow\n\nwhen I receive [menuclose v]\nhide\n\nwhen this sprite clicked\nbroadcast (menuclose v) and wait\nbroadcast (lwskinshop v)\n\n@LWSkinShop\n\nwhen flag clicked\nset [gernrallycollected v] to [0]\nhide variable [gernrallycollected v]\nhide\ngo to x: (36) y: (28)\n\nwhen I receive [lwskinshop v]\nshow variable [gernrallycollected v]\nshow\n\nwhen I receive [lwskinshopclose v]\nhide variable [gernrallycollected v]\nhide\n\n@lsa\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [default]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            switch costume to (kostüm3 v)\n        else\n            switch costume to (kostüm1 v)\n        end\n    end\nend\n\nwhen this sprite clicked\nset [skin v] to [default]\n\n@lsa2\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [blue]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            if <<(gernrallyCollected) > [6]> or <(gernrallyCollected) = [6]>> then\n                switch costume to (kostüm3 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        else\n            if <<(gernrallyCollected) > [6]> or <(gernrallyCollected) = [6]>> then\n                switch costume to (kostüm1 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        end\n    end\nend\n\nwhen this sprite clicked\nif <<(gernrallyCollected) > [6]> or <(gernrallyCollected) = [6]>> then\n    set [skin v] to [blue]\nend\n\n@lsa3\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [orange]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            switch costume to (kostüm3 v)\n        else\n            switch costume to (kostüm1 v)\n        end\n    end\nend\n\nwhen this sprite clicked\nset [skin v] to [orange]\n\n@menu-skip\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen I receive [menu v]\nif <not <(level) = [6]>> then\n    show\nend\n\nwhen I receive [menuclose v]\nhide\n\nwhen this sprite clicked\nbroadcast (menuclose v)\nset [pause v] to [false]\nchange [level v] by (1)\nset [exit v] to [fall]\nwait (1) seconds\n\n@lsa4\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [hat]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            if <<(gernrallyCollected) > [10]> or <(gernrallyCollected) = [10]>> then\n                switch costume to (kostüm3 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        else\n            if <<(gernrallyCollected) > [10]> or <(gernrallyCollected) = [10]>> then\n                switch costume to (kostüm1 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        end\n    end\nend\n\nwhen this sprite clicked\nif <<(gernrallyCollected) > [10]> or <(gernrallyCollected) = [10]>> then\n    set [skin v] to [hat]\nend\n\n@lsa5\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [glasses]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            if <<(gernrallyCollected) > [24]> or <(gernrallyCollected) = [24]>> then\n                switch costume to (kostüm3 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        else\n            if <<(gernrallyCollected) > [24]> or <(gernrallyCollected) = [24]>> then\n                switch costume to (kostüm1 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        end\n    end\nend\n\nwhen this sprite clicked\nif <<(gernrallyCollected) > [24]> or <(gernrallyCollected) = [24]>> then\n    set [skin v] to [glasses]\nend\n\n@lsa6\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [flower]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            if <<(gernrallyCollected) > [36]> or <(gernrallyCollected) = [36]>> then\n                switch costume to (kostüm3 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        else\n            if <<(gernrallyCollected) > [36]> or <(gernrallyCollected) = [36]>> then\n                switch costume to (kostüm1 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        end\n    end\nend\n\nwhen this sprite clicked\nif <<(gernrallyCollected) > [36]> or <(gernrallyCollected) = [36]>> then\n    set [skin v] to [flower]\nend\n\n@lsa7\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\nforever\n    if <(skin) = [cat]> then\n        switch costume to (kostüm2 v)\n    else\n        if <touching (mouse-pointer v)?> then\n            if <<(gernrallyCollected) > [68]> or <(gernrallyCollected) = [68]>> then\n                switch costume to (kostüm3 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        else\n            if <<(gernrallyCollected) > [68]> or <(gernrallyCollected) = [68]>> then\n                switch costume to (kostüm1 v)\n            else\n                switch costume to (kostüm4 v)\n            end\n        end\n    end\nend\n\nwhen this sprite clicked\nif <<(gernrallyCollected) > [68]> or <(gernrallyCollected) = [68]>> then\n    set [skin v] to [cat]\nend\n\n@lsc2\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen this sprite clicked\nbroadcast (lwskinshopclose v) and wait\nbroadcast (menu v)\n\n@lsc\n\nwhen I receive [lwskinshop v]\nshow\n\nwhen I receive [lwskinshopclose v]\nhide\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen this sprite clicked\nbroadcast (lwskinshopclose v)\nset [pause v] to [false]\n\n@LWScoreMonitor\n\nwhen flag clicked\nhide\ngo to x: (36) y: (28)\n\nwhen I receive [lwscoremonitor v]\nshow variable [showgc v]\nshow variable [showwwhsp v]\nshow variable [time v]\nshow variable [showwwtime v]\nshow variable [gamestate v]\nshow\n\nwhen I receive [lwscoremonitorclose v]\nhide variable [showgc v]\nhide variable [showwwhsp v]\nhide variable [time v]\nhide variable [showwwtime v]\nhide variable [gamestate v]\nhide\n\nwhen I receive [playgame v]\nset [time v] to [0]\nset [run v] to [true]\n\nwhen I receive [tick v]\nset [showgc v] to (gernrallyCollected)\nif <<(gernrallyCollected) > (☁ highscoreCollectedCoins)> or <(gernrallyCollected) = (☁ highscoreCollectedCoins)>> then\n    set [☁ highscorecollectedcoins v] to (gernrallyCollected)\n    set [showwwhsp v] to [Dein Score]\nelse\n    set [showwwhsp v] to (☁ highscoreCollectedCoins)\nend\n\nwhen flag clicked\nset [hs v] to [false]\n\ndefine SendLongMessage (content)\nset [messagecontent v] to (content)\nbroadcast (messageLong v) and wait\n\ndefine SendMessage (content)\nset [messagecontent v] to (content)\nbroadcast (message v)\n\nwhen I receive [tick v]\nif <(run) = [true]> then\n    change [time v] by (0.01)\n    set [gamestate v] to (join [Spielt bei Level ] (level))\n    set [showwwtime v] to (☁ highscoreTime)\n    if <(level) = [6]> then\n        set [gamestate v] to [Spiel abgeschlossen]\n        if <<(☁ highscoreTime) > (time)> or <(☁ highscoreTime) = (time)>> then\n            set [☁ highscoretime v] to (time)\n            set [showwwtime v] to [Dein Score]\n            SendMessage [gotWWTHS]\n        else\n            set [showwwtime v] to (☁ highscoreTime)\n        end\n        set [run v] to [false]\n    end\nend\n\n@lsc3\n\nwhen I receive [lwscoremonitor v]\nshow\n\nwhen I receive [lwscoremonitorclose v]\nhide\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen this sprite clicked\nbroadcast (lwscoremonitorclose v) and wait\nbroadcast (menu v)\n\n@lsc4\n\nwhen I receive [lwscoremonitor v]\nshow\n\nwhen I receive [lwscoremonitorclose v]\nhide\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen this sprite clicked\nbroadcast (lwscoremonitorclose v)\nset [pause v] to [false]\n\n@menu_lw_scoremonitor\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (36) y: (28)\n\nwhen I receive [menu v]\nshow\n\nwhen I receive [menuclose v]\nhide\n\nwhen this sprite clicked\nbroadcast (menuclose v) and wait\nbroadcast (lwscoremonitor v)\n\n@Message\n\nwhen flag clicked\nhide\ngo to x: (0) y: (200)\n\nwhen I receive [message v]\nstart sound [Win v]\nswitch costume to (messagecontent)\nshow\nglide (0.6) secs to x: (0) y: (110)\nwait (4) seconds\nglide (0.6) secs to x: (0) y: (200)\nwait (0.01) seconds\nhide\n\nwhen I receive [messagelong v]\nstart sound [Ring Tone v]\nswitch costume to (messagecontent)\nshow\nglide (0.6) secs to x: (0) y: (110)\nwait (16) seconds\nglide (0.6) secs to x: (0) y: (200)\nwait (0.01) seconds\nhide\n\n@SkipIntroButton\n\nwhen flag clicked\nswitch costume to (kostüm2 v)\nshow\n\nwhen this sprite clicked\nbroadcast (greenFlag v) and wait\nbroadcast (playGame v) and wait\n\nwhen I receive [greenflag v]\nhide\n\n@Baloo Palij\n\nwhen flag clicked\nSetup\n\ndefine Setup Characters\ndelete all of [characters v]\nswitch costume to ((1) + (0))\nrepeat until <(costume [name v]) = [A4]>\n    next costume\n    add [10] to [characters v]\nend\n// [Baloo Paalji]\nadd [45] to [characters v]\nadd [40] to [characters v]\nadd [39] to [characters v]\nadd [43] to [characters v]\nadd [34] to [characters v]\nadd [34] to [characters v]\nadd [44] to [characters v]\nadd [42] to [characters v]\nadd [14] to [characters v]\nadd [26] to [characters v]\nadd [41] to [characters v]\nadd [33] to [characters v]\nadd [54] to [characters v]\nadd [42] to [characters v]\nadd [49] to [characters v]\nadd [38] to [characters v]\nadd [51] to [characters v]\nadd [40] to [characters v]\nadd [37] to [characters v]\nadd [40] to [characters v]\nadd [42] to [characters v]\nadd [46] to [characters v]\nadd [62] to [characters v]\nadd [42] to [characters v]\nadd [42] to [characters v]\nadd [38] to [characters v]\nadd [36] to [characters v]\nadd [39] to [characters v]\nadd [33] to [characters v]\nadd [39] to [characters v]\nadd [38] to [characters v]\nadd [28] to [characters v]\nadd [37] to [characters v]\nadd [37] to [characters v]\nadd [15] to [characters v]\nadd [19] to [characters v]\nadd [36] to [characters v]\nadd [13] to [characters v]\nadd [57] to [characters v]\nadd [37] to [characters v]\nadd [40] to [characters v]\nadd [39] to [characters v]\nadd [39] to [characters v]\nadd [26] to [characters v]\nadd [33] to [characters v]\nadd [25] to [characters v]\nadd [37] to [characters v]\nadd [39] to [characters v]\nadd [57] to [characters v]\nadd [37] to [characters v]\nadd [39] to [characters v]\nadd [33] to [characters v]\nadd [41] to [characters v]\nadd [24] to [characters v]\nadd [35] to [characters v]\nadd [35] to [characters v]\nadd [45] to [characters v]\nadd [35] to [characters v]\nadd [38] to [characters v]\nadd [35] to [characters v]\nadd [38] to [characters v]\nadd [38] to [characters v]\nadd [23] to [characters v]\nadd [39] to [characters v]\n\n\nset [clone id v] to (clone id)\nset [text length v] to (length of (text))\nset [letter size v] to [0]\nset [text width v] to [0]\nrepeat until <(Text Width) > (width)>\n    change [letter size v] by (0.01)\n    set [letter # v] to [1]\n    set [text width v] to [0]\n    repeat (length of (text))\n        switch costume to (join (letter (Letter #) of (text)) [4])\n        change [letter # v] by (1)\n        change [text width v] by ((item (costume [number v]) of [characters v]) * (Letter Size))\n    end\nend\nrepeat until <(Text Width) < (width)>\n    change [letter size v] by (-0.001)\n    set [letter # v] to [1]\n    set [text width v] to [0]\n    repeat (length of (text))\n        switch costume to (join (letter (Letter #) of (text)) [4])\n        change [letter # v] by (1)\n        change [text width v] by ((item (costume [number v]) of [characters v]) * (Letter Size))\n    end\nend\nswitch costume to (pos v)\nif <<(alignment) = [C]> or <(alignment) = [Center]>> then\n    set [letter x v] to ((x) - ((Text Width) / (2)))\nend\nif <<(alignment) = [L]> or <(alignment) = [Left]>> then\n    set [letter x v] to (x)\nend\nif <<(alignment) = [R]> or <(alignment) = [Right]>> then\n    set [letter x v] to ((x) - (Text Width))\nend\nset [letter y v] to (y)\nset [letter # v] to [1]\nset [letter size v] to ((Letter Size) * (90))\nSet Size to (Letter Size)\nrepeat (length of (text))\n    switch costume to (join (letter (Letter #) of (text)) [4])\n    set [letter costume # v] to (costume [number v])\n    switch costume to (pos v)\n    change [letter x v] by (((item (Letter Costume #) of [characters v]) * ((Letter Size) / (90))) * (0.5))\n    create clone of (_myself_ v)\n    change [letter # v] by (1)\n    change [letter x v] by (((item (Letter Costume #) of [characters v]) * ((Letter Size) / (90))) * (0.5))\nend\n\ndefine // (comment)\n\n\nset [clone id v] to (clone id)\nset [text length v] to (length of (text))\nset [letter size v] to ((size) / (90))\nset [text width v] to [0]\nset [letter # v] to [1]\nset [text width v] to [0]\nrepeat (length of (text))\n    switch costume to (join (letter (Letter #) of (text)) [4])\n    change [letter # v] by (1)\n    change [text width v] by ((item (costume [number v]) of [characters v]) * (Letter Size))\nend\nswitch costume to (pos v)\nif <<(alignment) = [C]> or <(alignment) = [Center]>> then\n    set [letter x v] to ((x) - ((Text Width) / (2)))\nend\nif <<(alignment) = [L]> or <(alignment) = [Left]>> then\n    set [letter x v] to (x)\nend\nif <<(alignment) = [R]> or <(alignment) = [Right]>> then\n    set [letter x v] to ((x) - (Text Width))\nend\nset [letter y v] to (y)\nset [letter # v] to [1]\nset [letter size v] to ((Letter Size) * (90))\nrepeat (length of (text))\n    switch costume to (join (letter (Letter #) of (text)) [4])\n    set [letter costume # v] to (costume [number v])\n    switch costume to (pos v)\n    change [letter x v] by (((item (Letter Costume #) of [characters v]) * ((Letter Size) / (90))) * (0.5))\n    create clone of (_myself_ v)\n    change [letter # v] by (1)\n    change [letter x v] by (((item (Letter Costume #) of [characters v]) * ((Letter Size) / (90))) * (0.5))\nend\n\nwhen I start as a clone\n// [Text Clone]\nshow\nGo to (Letter X) (Letter Y)\nswitch costume to (Letter Costume #)\nSet Size to (Letter Size)\n\ndefine Setup\nclear graphic effects\nhide\nSetup Characters\n\ndefine Set Size to (size)\nset [costume # v] to (costume [number v])\nif <(size) > [100]> then\n    switch costume to (size v)\nelse\n    switch costume to (size 2 v)\nend\nset size to (size) %\nswitch costume to (Costume #)\n\ndefine Go to (x) (y)\nset [costume # v] to (costume [number v])\nswitch costume to (pos v)\ngo to x: (x) y: (y)\nswitch costume to (Costume #)\n\n
========Air - a mobile scrolling Platformer========\n-> -> https://scratch.mit.edu/studios/29336344/  <-  <-\nSCROLL DOWN FOR ENGLISH!\n20.07.2022: Fixed the lagging when collecting coins / Das Lagging beim einsammeln von Coins ist gefixt.\n20.07.2022: Fixed the bug with made it unplayable / Der Bug, der das Spiel unspielbar gemacht hat, ist gefixt.\n20.05.2021: Skip-Intro-Button\nDEUTSCH:\nHerzlich Wilkommen zu meinem Scrolling-Platformer Air!\nAlle Level sind lösbar (getestet am PC und auf dem Smartphone!)\nWenn du 2 Punkte suchst, dann nutze Walljumping und Trampoline um daran zu kommen, suche ganz nah am Anfang des Levels.\nIch weiß, dass es kurz ist, aber ich werde bald weitere Level hinzufügen!\nAir unterstützt mobile Steuerung und hat eine Menge neue Features!\n--------------------------LWSkinShop------------------------------\nKaufe dir mithilfe der Punkte, die du im gesammten Spiel sammelst verschiedene coole Skins!\n(Du findest den LWSkinShop, wenn du den Knopf mit den ... in der oberen Ecke des Spiels drückst und dann LWSkinShop auswählst.)\n-----------------------LWScoreMonitor----------------------------\nSchaffst du es mehr Punkte zu sammeln oder das Spiel schneller zu beenden als jeder andere Scratcher vor dir?\nMithilfe von Cloud-Variablen kannst du die beiden Rekorde knacken: Zeitrekord (Wie schnell du das Spiel geschafft hast) und Punkterekord (Wie viele Punkte du sammeln konntest)!\n(Du findest deine aktuellen Werte im LWScoreMonitor, den du erreichst, indem du den Knopf mit den ... in der oberen Ecke des Spiels drückst und dann LWScoreMonitor auswählst.)\n------------------Benachrichtigungen----------------------------\nHast du einen neuen Skin ferigeschaltet oder einen Rekord geknackt? Es wird dir sofort angezeigt!\n-------------------------------Steuerung----------------------------\nPfeiltasten, WASD oder mobile Steuerung.\n\n\n\nENGLISH:\nWelcome to my scrolling platformer Air!\nAll levels are possible (tested on the PC and on the smartphone!)\nIf you are looking for 2 points, then use wall jumping and trampolines to get to them, look very close to the beginning of the level.\nI know it's short, but i'll add more levels soon!\nAir supports mobile control and has a lot of new features!\n-------------------------- LWSkinShop ----------------------- ---\nUse the points you collect in the entire game to buy various cool skins!\n(You can find the LWSkinShop by pressing the button with the ... in the top corner of the game and then selecting LWSkinShop.)\n----------------------- LWScoreMonitor -------------------------- \nCan you collect more points or finish the game faster than any other scratcher before you?\nWith the help of cloud variables you can break the two records: time record (how fast you got through the game) and point record (how many points you can collect)!\n(You can find your current values ​​in the LWScoreMonitor, which you can reach by pressing the button with the ... in the top corner of the game and then selecting LWScoreMonitor.)\n------------------ Notifications ----------------------------\nHave you finished a new skin or broken a record? It will be shown to you immediately!\n-------------------------------Control------------------ ----------\nArrow keys, WASD or mobile control.