above and below - a platformer
@Stage\n\nwhen flag clicked\nset volume to (100) %\nhide variable [volume v]\nset [language v] to [english]\nset [volume v] to [100]\nbroadcast (menu music v)\nbroadcast (menu v)\n\nwhen I receive [menu music v]\nstop [other scripts in stage v]\nstop all sounds\nforever\n    play sound [Itro & Tobu - Cloud 9 \[NCS Release\].mp3 v] until done\nend\n\nwhen I receive [control v]\nstop [other scripts in stage v]\nstop all sounds\nforever\n    play sound [Tobu - Infectious \[NCS Release\].mp3 v] until done\nend\n\nwhen I receive [options v]\nforever\n    set volume to (volume) %\nend\n\n@menu\n\nwhen I start as a clone\nif <(costume [number v]) = [1]> then\n    show\n    set size to (100) %\n    go to x: (0) y: (0)\n    forever\n        wait (1) seconds\n        switch costume to (title2 v)\n        wait (1) seconds\n        switch costume to (title v)\n    end\nend\nif <(costume [number v]) = [3]> then\n    show\n    go to x: (-150) y: (40)\n    set size to (140) %\n    switch costume to (1 v)\n    forever\n        if <touching (mouse-pointer v)?> then\n            switch costume to (1\(2\) v)\n            if <mouse down?> then\n                broadcast (control v)\n            end\n        else\n            switch costume to (1 v)\n        end\n    end\nend\nif <(costume [number v]) = [4]> then\n    show\n    go to x: (150) y: (-40)\n    set size to (140) %\n    switch costume to (2 v)\n    forever\n        if <touching (mouse-pointer v)?> then\n            switch costume to (2\(2\) v)\n            if <mouse down?> then\n                broadcast (options v)\n                go to x: (170) y: (-130)\n                forever\n                    if <touching (mouse-pointer v)?> then\n                        switch costume to (return2menu\(2\) v)\n                        if <mouse down?> then\n                            broadcast (menu v)\n                        end\n                    else\n                        switch costume to (return2menu v)\n                    end\n                end\n            end\n        else\n            switch costume to (2 v)\n        end\n    end\nend\nif <(costume [number v]) = [9]> then\n    set size to (140) %\n    go to x: (-88) y: (-18)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            set size to (170) %\n            if <mouse down?> then\n                if <(volume) < [100]> then\n                    change [volume v] by (1)\n                end\n            end\n        else\n            set size to (140) %\n        end\n    end\nend\nif <(costume [number v]) = [10]> then\n    set size to (140) %\n    go to x: (-153) y: (-18)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            set size to (170) %\n            if <mouse down?> then\n                if <(volume) > [0]> then\n                    change [volume v] by (-1)\n                end\n            end\n        else\n            set size to (140) %\n        end\n    end\nend\nif <(costume [number v]) = [12]> then\n    set size to (140) %\n    go to x: (0) y: (0)\n    show\n    forever\n        if <(language) = [english]> then\n            switch costume to (text \(english\) v)\n        end\n        if <(language) = [german]> then\n            switch costume to (text \(german\) v)\n        end\n    end\nend\nif <(costume [number v]) = [13]> then\n    set size to (140) %\n    go to x: (0) y: (0)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            if <mouse down?> then\n                set [language v] to [english]\n            end\n        end\n    end\nend\nif <(costume [number v]) = [14]> then\n    set size to (140) %\n    go to x: (0) y: (0)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            if <mouse down?> then\n                set [language v] to [german]\n            end\n        end\n    end\nend\n\nwhen I receive [menu v]\nhide variable [volume v]\nwait (0.01) seconds\nswitch costume to (title v)\ncreate clone of (_myself_ v)\nswitch costume to (1 v)\ncreate clone of (_myself_ v)\nswitch costume to (2 v)\ncreate clone of (_myself_ v)\nswitch costume to (iamnotabot v)\n\nwhen I receive [options v]\nif <<(costume [number v]) = [3]> or <(costume [number v]) = [5]>> then\n    delete this clone\nend\nif <<(costume [number v]) = [1]> or <(costume [number v]) = [2]>> then\n    hide\nend\n\nwhen I receive [options v]\nif <(costume [number v]) = [11]> then\n    show variable [volume v]\n    switch costume to (louder v)\n    create clone of (_myself_ v)\n    switch costume to (quiet v)\n    create clone of (_myself_ v)\n    switch costume to (text \(english\) v)\n    create clone of (_myself_ v)\n    switch costume to (english v)\n    create clone of (_myself_ v)\n    switch costume to (german v)\n    create clone of (_myself_ v)\nend\n\nwhen I receive [control v]\ndelete this clone\n\nwhen flag clicked\nset size to (140) %\nhide\nswitch costume to (iamnotabot v)\ngo to x: (0) y: (0)\n\nwhen I receive [menu v]\ndelete this clone\n\nswitch costume to (screen v)\nset size to (100) %\ngo to x: (0) y: (0)\nshow\n\n@mirror\n\nwhen flag clicked\nswitch costume to (2 v)\nhide\n\ndefine boost it\nset size to (55) %\ngo to x: ([x position v] of [hit-box v]) y: (([y position v] of [hit-box v]) * (-1))\nset size to (58) %\nchange y by (-5)\nif <(item (2) of [player v]) < [-10]> then\n    change y by (-5)\nend\nif <(item (2) of [player v]) < [-15]> then\n    change y by (-5)\nend\nif <(item (2) of [player v]) < [-20]> then\n    change y by (-5)\nend\n\nwhen I receive [won v]\nstop [other scripts in sprite v]\nhide\n\nwhen I receive [control v]\nshow\ngo to [front v] layer\nforever\n    boost it\n    go to [front v] layer\nend\n\n@hit-box\n\nwhen I receive [control v]\nreboot player list\nclear graphic effects\npoint in direction (90)\ngo to x: (-202) y: (5)\nset size to (60) %\nhide\nforever\n    if <touching color (#00cc44)?> then\n        if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n            change x by (5)\n            if <touching color (#000000)?> then\n                change x by (-5)\n            end\n        end\n        if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n            change x by (-5)\n            if <touching color (#000000)?> then\n                change x by (5)\n            end\n        end\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            change y by (5)\n            if <touching color (#000000)?> then\n                change y by (-5)\n            end\n        end\n        if <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n            change y by (-5)\n            if <touching color (#000000)?> then\n                change y by (5)\n            end\n        end\n        reboot player list\n    else\n        if <touching color (#000000)?> then\n            change y by (10)\n            if <touching color (#000000)?> then\n                change y by (-10)\n                replace item (2) of [player v] with (((item (2) of [player v]) * (-1)) * (0.8))\n                change y by (item (2) of [player v])\n            else\n                change y by (-10)\n                if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<key (down arrow v) pressed?> or <key (s v) pressed?>>> then\n                    replace item (2) of [player v] with [8]\n                else\n                    replace item (2) of [player v] with [0]\n                end\n            end\n        end\n        if <touching color (#00ff55)?> then\n            replace item (2) of [player v] with [12]\n        end\n        change y by (item (2) of [player v])\n        replace item (2) of [player v] with ((item (2) of [player v]) - (0.5))\n        change y by (2)\n        if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n            replace item (1) of [player v] with ((item (1) of [player v]) + (1.5))\n            replace item (3) of [player v] with (((item (3) of [player v]) + (0.01)) * (0.3))\n        end\n        if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n            replace item (1) of [player v] with ((item (1) of [player v]) - (1.5))\n            replace item (3) of [player v] with (((item (3) of [player v]) + (0.01)) * (0.3))\n        end\n        replace item (1) of [player v] with ((item (1) of [player v]) * (0.8))\n        change x by (item (1) of [player v])\n        if <touching color (#000000)?> then\n            change y by (3)\n            if <touching color (#000000)?> then\n                change y by (3)\n                if <touching color (#000000)?> then\n                    change y by (4)\n                    if <touching color (#000000)?> then\n                        if <touching color (#000000)?> then\n                            change y by (((item (2) of [player v]) * (-2)) - (10))\n                            if <touching color (#000000)?> then\n                                change y by ((item (2) of [player v]) * (2))\n                                change x by ((item (1) of [player v]) * (-1))\n                                if <touching color (#000000)?> then\n                                    replace item (1) of [player v] with ((item (1) of [player v]) * (-2))\n                                    replace item (2) of [player v] with ((item (2) of [player v]) * (-1))\n                                    change x by (item (1) of [player v])\n                                end\n                            else\n                                replace item (2) of [player v] with ((item (2) of [player v]) * (-1))\n                            end\n                        end\n                    else\n                        replace item (2) of [player v] with ((item (2) of [player v]) * (0.6))\n                    end\n                end\n            end\n        end\n        if <(item (3) of [player v]) < [0.1]> then\n            replace item (3) of [player v] with ((item (3) of [player v]) * (1.4))\n        end\n        change y by (-2)\n    end\n    if <(x position) > [230]> then\n        broadcast (next level v)\n        reboot player list\n        go to x: (-202) y: (5)\n    end\n    if <touching color (#cc0000)?> then\n        reboot player list\n        start sound [1 v]\n        go to x: (-202) y: (5)\n    end\n    if <touching color (#ffff00)?> then\n        reboot player list\n        start sound [laser1 v]\n        go to x: ([x position v] of [items v]) y: ([y position v] of [items v])\n    end\nend\n\nreplace item (1) of [player v] with ((item (1) of [player v]) + (2))\nreplace item (3) of [player v] with (((item (3) of [player v]) + (0.01)) * (0.3))\nchange x by (item (1) of [player v])\nchange x by (item (1) of [player v])\nif <touching color (#000000)?> then\n    change y by (10)\nend\n\nwhen I receive [next level v]\nif <([costume # v] of [level v]) < [15]> then\n    go to [front v] layer\n    hide\n    clear graphic effects\n    wait (40) seconds\n    show\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\n    clear graphic effects\n    wait (10) seconds\n    show\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\n    clear graphic effects\n    forever\n        wait (2) seconds\n        show\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        hide\n        clear graphic effects\n    end\nend\n\nif <(x position) < [-239]> then\n    if <<not <([costume # v] of [level v]) = [8]>> and <not <([costume # v] of [level v]) = [20]>>> then\n        set x to ((x position) * (-1))\n        replace item (1) of [player v] with ((item (1) of [player v]) + (2))\n        replace item (3) of [player v] with (((item (3) of [player v]) + (0.01)) * (0.3))\n        change x by (item (1) of [player v])\n        change x by (item (1) of [player v])\n        if <touching color (#000000)?> then\n            change y by (10)\n        end\n    end\nend\n\ndefine reboot player list\ndelete (all) of [player v]\ninsert [x] at (1) of [player v] \ninsert [0] at (2) of [player v] \ninsert [step] at (3) of [player v] \n\nwhen flag clicked\nset volume to (100) %\nhide\n\nwhen I receive [menu v]\nstop [other scripts in sprite v]\nset volume to (volume) %\nhide\n\nwhen I receive [won v]\nstop [other scripts in sprite v]\nhide\n\n@level\n\nwhen I receive [menu v]\nhide\n\nwhen I receive [control v]\ngo [backward v] (1) layers\ngo to [front v] layer\nshow\nswitch costume to (1 v)\n\nwhen I receive [next level v]\nnext costume\nif <(costume [number v]) = [16]> then\n    broadcast (hide items v)\nend\nif <(costume [number v]) = [17]> then\n    broadcast (won v)\n    wait (5) seconds\n    hide\n    broadcast (menu music v)\n    broadcast (menu v)\nend\n\nwhen flag clicked\nswitch costume to (1 v)\ngo to x: (0) y: (0)\nhide\n\n@items\n\nwhen I receive [control v]\nwait until <([costume # v] of [level v]) = [8]>\nstop [other scripts in sprite v]\nhide\nwait until <([costume # v] of [level v]) = [12]>\nswitch costume to (red spinning thing v)\ngo to x: (0) y: (60)\nset size to (50) %\nshow\nrepeat until <([costume # v] of [level v]) = [13]>\n    turn right (-5) degrees\nend\nhide\npoint in direction (90)\nwait until <([costume # v] of [level v]) = [13]>\nset [message v] to (join (☁ cloud_data1/1) [ scratcher played this level])\nshow variable [message v]\nwait until <([costume # v] of [level v]) = [14]>\nhide variable [message v]\nif <not <(username) = [WINDSEEKER]>> then\n    change [☁ cloud_data1/1 v] by (1)\nend\nwait until <([costume # v] of [level v]) = [15]>\nswitch costume to (destroying thing v)\nset size to (120) %\nshow\ngo to x: (0) y: (0)\nforever\n    change y by (-6)\n    repeat (8)\n        change y by (-9)\n    end\n    change y by (6)\n    repeat (8)\n        change y by (9)\n    end\n    wait (0.5) seconds\nend\n\nwhen flag clicked\nhide variable [message v]\nhide\n\nwhen I receive [menu v]\nhide\n\nwhen I receive [control v]\npoint in direction (90)\nset size to (120) %\nwait until <([costume # v] of [level v]) = [6]>\ngo to x: (-177) y: (126)\nwait until <([costume # v] of [level v]) = [7]>\nshow\nswitch costume to (lift v)\nforever\n    go to x: (150) y: (40)\n    repeat (220)\n        change x by (-1)\n    end\n    repeat (220)\n        change x by (1)\n    end\nend\n\nwhen I receive [hide items v]\nstop [other scripts in sprite v]\nhide\n\n
Click on the "options button", to see the instructions.\nKlick auf den "Option Knopf", um die Anleitung zu sehen.\n\n~~~Updates~~~\n- 08.07.2018 updated the options\n- 28.02.2020 able to jump with S