The Strange Land (a platformer)  ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ #all #timmccool
@Stage\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [$R5DR0OE v] until done\nend\n\nwhen I receive [end v]\nrepeat (100)\n    change volume by (-1)\nend\n\nwhen [m v] key pressed\nif <(volume) = [100]> then\n    set volume to (0) %\n    wait (3) seconds\n    stop [this script v]\nend\nif <(volume) = [0]> then\n    set volume to (100) %\n    wait (3) seconds\n    stop [this script v]\nend\n\n@player\n\nwhen flag clicked\ngo to x: (159) y: (69)\n\nwhen I receive [fin v]\nhide\nstop [other scripts in sprite v]\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    if <touching (mouse-pointer v)?> then\n        set [ghost v] effect to (60)\n    else\n        set [ghost v] effect to (30)\n    end\nend\n\nwhen I receive [start v]\nhide\ngo to x: (-80) y: (0)\nset [ghost v] effect to (10)\ngo to [back v] layer\nswitch costume to (kostüm1 v)\npoint in direction (90)\nwait (1.5) seconds\nshow\ngo to [front v] layer\nforever\n    change [y v] by (-1)\n    if <<<(x position) > (mouse x)> and <mouse down?>> or <key (left arrow v) pressed?>> then\n        change [x v] by (-0.7)\n    end\n    if <<<(x position) < (mouse x)> and <mouse down?>> or <key (right arrow v) pressed?>> then\n        change [x v] by (0.7)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (-5)\n        change x by ((x) * (-1))\n        if <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> then\n            set [y v] to [10]\n            if <([abs v] of (x) ) = (x)> then\n                set [x v] to [-20]\n            else\n                set [x v] to [20]\n            end\n        else\n            set [x v] to [0]\n        end\n    end\n    change y by (y)\n    if <touching (level v)?> then\n        change y by ((0) - (y))\n        set [y v] to [1]\n    end\n    change y by (-2)\n    if <<touching (level v)?> and <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>>> then\n        set [y v] to [15]\n    end\n    change y by (2)\n    if <(y position) > [180]> then\n        set [y v] to [0]\n    end\n    if <<key (r v) pressed?> or <<[-175] > (y position)> or <touching (saw v)?>>> then\n        set [x v] to [0]\n        set [y v] to [0]\n        go to x: (-239) y: (0)\n    end\n    if <<(x position) > [230]> or <key (s v) pressed?>> then\n        set [x v] to [0]\n        set [y v] to [0]\n        go to x: (-239) y: (0)\n        hide\n        broadcast (slide v)\n        wait (0.5) seconds\n        if <(Level) = [14]> then\n            broadcast (end v)\n            wait (1) seconds\n            broadcast (levelup v)\n            stop [this script v]\n        end\n        broadcast (levelup v)\n        wait (1.5) seconds\n        show\n    end\nend\n\nwhen flag clicked\nforever\n    if <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> then\n        repeat (8)\n            wait (0.01) seconds\n            next costume\n        end\n        wait (1) seconds\n    end\nend\n\n@glow\n\nwhen flag clicked\ngo to [back v] layer\nforever\n    wait (0.7) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\ngo to (random position v)\ngo to [back v] layer\nshow\nswitch costume to (1 v)\nset [ghost v] effect to (100)\nrepeat (40)\n    change [ghost v] effect by (-1)\nend\nrepeat (40)\n    change [ghost v] effect by (1)\nend\ndelete this clone\n\n@level\n\nwhen I receive [start v]\nswitch costume to (1 v)\n\nwhen flag clicked\nshow\nswitch costume to (intro v)\n\nwhen I receive [levelup v]\nnext costume\ngo to [front v] layer\n\n@decoration\n\nwhen I receive [start v]\nshow\nset [ghost v] effect to (30)\nswitch costume to (1 v)\ngo to x: (0) y: (0)\n\nwhen flag clicked\nshow\nswitch costume to (intro v)\nset [ghost v] effect to (30)\ngo to x: (0) y: (0)\npoint in direction (90)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [ghost v] effect to (30)\n    else\n        set [ghost v] effect to (20)\n    end\nend\n\nwhen I receive [levelup v]\nchange [level v] by (1)\n\nwhen flag clicked\n\nwhen I receive [levelup v]\nnext costume\n\n@Title\n\nnext costume\n\nwhen flag clicked\nset [title size change vel v] to [100]\nset size to (100) %\nshow\nswitch costume to (intro v)\nset [ghost v] effect to (30)\nforever\n    point in direction ((([sin v] of ((timer) * (100)) ) * (2)) + (90))\n    go to x: ((([sin v] of ((timer) * (150)) ) * (4)) + (20)) y: ((([cos v] of ((timer) * (150)) ) * (4)) + (70))\n    if <touching (mouse-pointer v)?> then\n        set [ghost v] effect to (60)\n    else\n        set [ghost v] effect to (30)\n    end\nend\n\nwhen flag clicked\n\nset size to (title size change vel) %\n\nwhen I receive [start v]\nhide\nstop [other scripts in sprite v]\n\nwhen I receive [end v]\ngo to x: (0) y: (0)\npoint in direction (90)\ngo to [front v] layer\nwait (3) seconds\nshow\nset [ghost v] effect to (100)\nswitch costume to (outro1 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (5) seconds\nset [id v] to [0]\ncreate clone of (_myself_ v)\nwait (5) seconds\nset [id v] to [1]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\ngo to [front v] layer\nif <(id) = [0]> then\n    switch costume to (outro2 v)\nelse\n    switch costume to (outro3 v)\nend\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\n@trans\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nshow\nwait (1.5) seconds\nrepeat (40)\n    change [ghost v] effect by (2.5)\nend\n\nwhen I receive [start v]\ngo to [front v] layer\nset [ghost v] effect to (0)\ngo to [front v] layer\nwait (1.5) seconds\nrepeat (40)\n    change [ghost v] effect by (2.5)\nend\n\nwhen I receive [levelup v]\ngo to [front v] layer\nset [ghost v] effect to (0)\ngo to [front v] layer\nwait (1.5) seconds\nrepeat (40)\n    change [ghost v] effect by (2.5)\nend\n\nwhen I receive [slide v]\ngo to [front v] layer\nset [ghost v] effect to (100)\ngo to [front v] layer\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\n@play_button\n\nwhen flag clicked\nshow\ngo to x: (0) y: (100)\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (110) %\n        set [ghost v] effect to (35)\n        if <mouse down?> then\n            broadcast (slide v)\n            wait (1) seconds\n            broadcast (start v)\n            hide\n            stop [this script v]\n        end\n    else\n        set size to (100) %\n        set [ghost v] effect to (5)\n    end\nend\n\n@effect\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nset [ghost v] effect to (90)\nrepeat until <(timer) > [5]>\n\n@fog\n\nwhen flag clicked\nset [ghost v] effect to (90)\ngo to x: (10) y: (0)\nshow\ncreate clone of (_myself_ v)\nforever\n    change x by (-1)\n    if <(x position) = [-420]> then\n        hide\n    end\nend\n\nwhen I start as a clone\nshow\nset x to (420)\nforever\n    change x by (-1)\n    if <(x position) = [10]> then\n        create clone of (_myself_ v)\n    end\n    if <(x position) = [-420]> then\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nset [ghost v] effect to (90)\n\nwhen flag clicked\nset [title y change vl v] to [-10]\nforever\n    repeat (50)\n        change [title y change vl v] by (0.25)\n    end\n    repeat (50)\n        change [title y change vl v] by (-0.25)\n    end\nend\n\n@saw\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nnew saw at level [7] position [-67] [-85] type [1]\nnew saw at level [7] position [10] [-85] type [1]\nnew saw at level [7] position [210] [-85] type [1]\nnew saw at level [8] position [208] [-137] type [1]\nnew saw at level [8] position [153] [-137] type [1]\nnew saw at level [8] position [98] [-137] type [1]\nnew saw at level [8] position [43] [-137] type [1]\nnew saw at level [8] position [-12] [-137] type [1]\nnew saw at level [8] position [-67] [-137] type [1]\nnew saw at level [8] position [-122] [-137] type [1]\nnew saw at level [8] position [-177] [-137] type [1]\nnew saw at level [8] position [-232] [-137] type [1]\nnew saw at level [9] position [122] [-92] type [1]\nnew saw at level [9] position [67] [-127] type [1]\nnew saw at level [9] position [164] [-57] type [1]\nnew saw at level [9] position [16] [-92] type [1]\nnew saw at level [9] position [-24] [-57] type [1]\nnew saw at level [11] position [-165] [-45] type [1]\nnew saw at level [11] position [5] [-45] type [1]\nnew saw at level [11] position [170] [-45] type [1]\nnew saw at level [14] position [-86] [-102] type [1]\n\ndefine new saw at level (level) position (x) (y) type (type)\nhide\nif <(type) = [1]> then\n    if <(Level) = (level)> then\n    go to x: (x) y: (y)\n    create clone of (_myself_ v)\nelse\n    if <(type) = [2]> then\n        if <(Level) = (level)> then\n        go to x: (x) y: (y)\n        show\n        forever\n            if <(Level) = (level)> then\n                show\n                go to x: (x) y: (y)\n                repeat (60)\n                    change x by (5)\n                    point in direction ((([sin v] of ((timer) * (Rot Velocity)) ) * ((Rot Velocity) * (0.5))) + (90))\n                    wait until <(Level) = (level)>\n                end\n                show\n                go to x: ((x) + (300)) y: (y)\n                repeat (60)\n                    change x by (-5)\n                    point in direction ((([sin v] of ((timer) * (Rot Velocity)) ) * ((Rot Velocity) * (0.5))) + (90))\n                    wait until <(Level) = (level)>\n                end\n            end\n        end\n    else\n        if <(Level) = (level)> then\n        forever\n            if <(Level) = (level)> then\n                show\n                go to x: (x) y: (180)\n                repeat (30)\n                    change y by (-10)\n                    point in direction ((([sin v] of ((timer) * (Rot Velocity)) ) * ((Rot Velocity) * (0.5))) + (90))\n                    wait until <(Level) = (level)>\n                end\n                show\n                go to x: (y) y: (-180)\n                repeat (30)\n                    change y by (10)\n                    point in direction ((([sin v] of ((timer) * (Rot Velocity)) ) * ((Rot Velocity) * (0.5))) + (90))\n                    wait until <(Level) = (level)>\n                end\n            end\n        end\n    end\nend\n\nwait (0.1) seconds\n\nwhen I start as a clone\nshow\nforever\n    set [rot velocity v] to [200]\n    point in direction ((([sin v] of ((timer) * (Rot Velocity)) ) * ((Rot Velocity) * (0.5))) + (90))\nend\n\nwhen flag clicked\nset [level v] to [1]\n\nwhen I receive [levelup v]\nhide\ndelete this clone\n\nturn right (15) degrees\n\nturn right (15) degrees\n\nwhen flag clicked\nnew saw at level [10] position [-100] [80] type [2]\n\nwhen flag clicked\nnew saw at level [11] position [-110] [-147] type [2]\n\nwhen flag clicked\nnew saw at level [12] position [-84] [140] type [3]\n\nforever\n    turn right (15) degrees\nend\n\n@Figur8\n\n@TimMcCool2\n\nwhen flag clicked\nset [ghost v] effect to (80)\nhide\n\n@//📊 Scratch Analytics by @TimMcCool3\n\ndefine Send Data (payload)\nset [☁ to_host v] to (payload)\n\ndefine Encode (input)\nset [//output v] to []\nset [//i v] to [0]\nrepeat (length of (input))\n    change [//i v] by (1)\n    switch costume to (join [=] (letter (//i) of (input)))\n    set [//output v] to (join (//output) (costume [number v]))\nend\n\nwhen flag clicked\nwait (0.6) seconds\nEncode (join (username) (join [,] (join (current [hour v]) (join [,] []))))\nSend Data (//output)\n\n
The Strange land (a platformer) by @TimMcCool\n\n> Story:\nYou got lost on your way back home and came up in a strange land without colors. Your goal is to leave this terrible place.\n\n> How to play:\nArrow keys to move. Don't fall into holes or touch gears. S to skip, r to restart, m to turn on / off the music.\n\nEnjoy!