Soundformer (A Platformer Game)

Instructions: When I reach 1k followers then Elements 3 will be prioritised than other projects. So hit that follow button now!\n\n__________________________________________\n❤️ and ⭐️ this project for more games \n__________________________________________               \n                              Instructions\nInstructions are there In-game but I'll tell them here also:\n❯❯ Arrow keys, WSAD, or mobile controls.\n❯❯ Space or press the bottom right of the screen to \n     shoot fire to the right and bottom left of the screen \n     to shoot fire to the left, once you have received \n     elemental powers!\n❯❯ Be careful of enemies, they get more intelligent as \n     you pass the levels.\n❯❯ "N" to skip a level in story mode\n❯❯ "R" to restart the level\n❯❯ Please love, fav, and follow for more games like \n     this.\n\n___________________________________________\n\nSpeedrun Mode:\nTry to complete the game as fast as possible to get the world record\n__________________________________________\n\nGoals:\n100 views   ✔\n500 views    ✔\n1000 views   ✔\n2000 views     ✔\n3000 views     ✔\n4000 views     ✔\n5000 views     ✔\n10000 views   ✔\n15000 views    ✔\n\n50 loves     ✔\n100 loves     ✔\n200 loves     ✔\n500 loves     ✔\n1000 loves     ✔\n\n50 favs       ✔\n100 favs     ✔\n200 favs     ✔\n500 favs     ✔\n1000 favs   ✔

@Stage\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        switch backdrop to (backdrop3 v)\n    else\n        switch backdrop to (backdrop2 v)\n    end\nend\n\n@player\n\nwhen I start as a clone\nswitch costume to (trail v)\nrepeat (10)\n    change [ghost v] effect by (10)\n    change size by (-2)\nend\ndelete this clone\n\nwhen I receive [restart v]\nstart sound [Crunch v]\nset [x v] to [0]\nset [y v] to [0]\nshow\nclear graphic effects\ngo to x: (x spawn) y: (y spawn)\n\nset rotation style [left-right v]\n\nrepeat (10)\n    change y by (6)\n    change [ghost v] effect by (10)\nend\n\nrepeat (10)\n    change y by (-1)\n    change [ghost v] effect by (-10)\nend\n\nhide\n\ndefine run engine\nchange [y v] by (-0.5)\nif < or <key (a v) pressed?>> then\n    change [x v] by (-0.5)\n    point in direction (-90)\nend\nif < or <key (d v) pressed?>> then\n    change [x v] by (0.5)\n    point in direction (90)\nend\nset [x v] to ((x) * (0.9))\nchange x by (x)\nif <touching (ground v)?> then\n    change y by (1)\n    if <touching (ground v)?> then\n        change y by (1)\n        if <touching (ground v)?> then\n            change y by (1)\n            if <touching (ground v)?> then\n                change y by (1)\n                if <touching (ground v)?> then\n                    change y by (1)\n                    if <touching (ground v)?> then\n                        change y by (1)\n                        if <touching (ground v)?> then\n                            change y by (-6)\n                            change x by ((x) * (-1))\n                            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                set [y v] to [7]\n                                if <(x) > [0]> then\n                                    set [x v] to [-10]\n                                else\n                                    set [x v] to [0]\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (y)\nif <touching (ground v)?> then\n    change y by ((y) * (-1))\n    set [y v] to [0]\nend\nchange y by (-0.5)\nif <<<touching (ground v)?> and <key (up arrow v) pressed?>> or < or <<touching (ground v)?> and <key (w v) pressed?>>>> then\n    set [y v] to [7]\nend\nchange y by (0.5)\nif <<touching (danger v)?> or <<touching (saw v)?> or <<touching (lava v)?> or <touching (moving spikes v)?>>>> then\n    broadcast (Restart v)\nend\nif <touching (bounce pads v)?> then\n    set [y v] to [12]\n    start sound [Jump v]\nend\nif <touching (flag v)?> then\n    broadcast (next v)\n    change [level v] by (1)\n    go to x: (x spawn) y: (y spawn)\n    set [x v] to [0]\n    set [y v] to [0]\nend\n\nset [moving_? v] to [y]\n\nset [moving_? v] to [y]\n\nset [moving_? v] to [y]\n\nset [moving_? v] to [n]\n\npoint in direction (90)\ngo to x: (x spawn) y: (y spawn)\n\nwhen I receive [next v]\ngo to x: (x spawn) y: (y spawn)\n\nwhen I receive [begin now v]\nset rotation style [left-right v]\nset [level v] to [1]\nshow\nset [x spawn v] to [-199]\nset [y spawn v] to [-76]\ngo to x: (x spawn) y: (y spawn)\nswitch costume to (1 v)\nswitch backdrop to (backdrop3 v)\nset size to (20) %\nset [x v] to [0]\nset [y v] to [0]\nforever\n    run engine\nend\n\nset [moving_? v] to [y]\n\nwhen flag clicked\nforever\n    switch costume to (costume1 v)\nend\n\nwhen flag clicked\nforever\n    if <<<key (left arrow v) pressed?> or <<<key (right arrow v) pressed?> or > or <key (d v) pressed?>>> or <key (a v) pressed?>> then\n        set [moving_? v] to [y]\n    else\n        set [moving_? v] to [n]\n    end\nend\n\nif <<<touching (ground v)?> and <key (up arrow v) pressed?>> or <<touching (ground v)?> and <key (w v) pressed?>>> then\n    set [moving_? v] to [up]\nend\n\n\n\nif <(MOVING_?) = [u]> then\n    switch costume to (up v)\nend\n\nif <(y position) > [-60]> then\n    set [moving_? v] to [u]\nelse\n    set [moving_? v] to [n]\nend\n\nrepeat until <(costume [number v]) = [6]>\n\nset [moving_? v] to [n]\n\nif <(MOVING_?) = [y]> then\n    wait (.01) seconds\n    next costume\nelse\n    switch costume to (1 v)\nend\n\ncreate clone of (_myself_ v)\n\nforever\n    if <(MOVING_?) = [y]> then\n        wait (.01) seconds\n        next costume\n    else\n        switch costume to (1 v)\n    end\nend\n\nwhen I receive [begin now v]\nwait (.1) seconds\nbroadcast (go v)\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        switch costume to (costume2 v)\n    else\n        switch costume to (costume1 v)\n    end\nend\n\nwhen I start as a clone\n\n@ground\n\nwhen flag clicked\ngo to x: (1) y: (-8)\nforever\n    switch costume to (level)\nend\n\ngo to [front v] layer\n\nwhen I receive [next v]\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        set [brightness v] effect to (100)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\n@moving spikes\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\nwhen flag clicked\nforever\n    glide (1) secs to x: (0) y: (15)\n    glide (1) secs to x: (0) y: (0)\nend\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        set [brightness v] effect to (100)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\n@lava\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\nwhen flag clicked\nforever\n    glide (1) secs to x: (0) y: (15)\n    glide (1) secs to x: (0) y: (0)\nend\n\n@danger\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        set [brightness v] effect to (100)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\n@flag\n\nwhen I receive [next v]\nstart sound [ding sound v]\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\n@bounce pads\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\ngo to [front v] layer\n\nwhen I receive [next v]\n\nwhen flag clicked\n\nforever\n    if <(dark mode?) = [y]> then\n        set [brightness v] effect to (100)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\n@skip\n\nwhen flag clicked\nhide\nset [skips v] to [0]\n\nwhen this sprite clicked\nif <(skips) < [5]> then\n    change [skips v] by (1)\n    change [level v] by (1)\n    broadcast (skipepd v)\nend\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        set [ghost v] effect to (10)\n        set size to (105) %\n    else\n        set [ghost v] effect to (0)\n        set size to (100) %\n    end\nend\n\nwhen I receive [doneee v]\nhide\n\nwhen I receive [begin now v]\nswitch costume to (costume1 v)\nset size to (100) %\ngo to x: (165) y: (161)\n\nshow\n\nforever\n\ngo to [front v] layer\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        switch costume to (costume2 v)\n    else\n        switch costume to (costume1 v)\n    end\nend\n\nwhen I receive [skipepd v]\nbroadcast (next v)\n\n@settings\n\nwhen flag clicked\nhide\nset [dark mode? v] to [n]\n\nwhen this sprite clicked\nif <(costume [number v]) = [1]> then\n    set size to (80) %\n    switch costume to (costume2 v)\n    go to x: (-170) y: (116)\nelse\n    if <(costume [number v]) = [3]> then\n        set size to (80) %\n        switch costume to (costume3 v)\n        go to x: (-170) y: (116)\n        set [dark mode? v] to [y]\n        broadcast (dark on v)\n    else\n        if <(costume [number v]) = [4]> then\n            set size to (80) %\n            switch costume to (costume2 v)\n            go to x: (-170) y: (116)\n            set [dark mode? v] to [n]\n            broadcast (dark off v)\n        else\n            if <(costume [number v]) = [2]> then\n                set size to (80) %\n                switch costume to (costume3 v)\n                go to x: (-170) y: (116)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [1]> then\n        if <touching (mouse-pointer v)?> then\n            set [ghost v] effect to (10)\n            set size to (105) %\n        else\n            set [ghost v] effect to (0)\n            set size to (100) %\n        end\n    end\nend\n\nwhen I receive [doneee v]\nhide\n\nforever\n    go to [front v] layer\nend\n\nwhen flag clicked\nshow\nswitch costume to (costume1 v)\nset size to (150) %\nshow\ngo to x: (-217) y: (161)\n\nswitch costume to (costume1 v)\nset size to (150) %\nshow\ngo to x: (-217) y: (161)\nrepeat until <(size) = [50]>\n    change size by (-20)\nend\nrepeat until <(size) = [100]>\n    change size by (10)\nend\n\nswitch costume to (costume1 v)\nset size to (150) %\nshow\ngo to x: (-217) y: (161)\n\nrepeat (10)\nrepeat (10)\n\nset [dark mode? v] to [y]\n\nwhen [space v] key pressed\nif <(dark mode?) = [n]> then\n    switch costume to (costume1 v)\n    go to x: (-217) y: (161)\nelse\n    switch costume to (dark1 v)\n    go to x: (-217) y: (161)\nend\n\n\nelse\nend\n\n@mute\n\nwhen this sprite clicked\nif <(costume [number v]) = [1]> then\n    switch costume to (unmuted v)\nelse\n    if <(costume [number v]) = [2]> then\n        switch costume to (muted v)\n    else\n        if <(costume [number v]) = [3]> then\n            switch costume to (unmuted2 v)\n        else\n            if <(costume [number v]) = [4]> then\n                switch costume to (muted2 v)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [doneee v]\nhide\n\nwhen flag clicked\nswitch costume to (unmuted v)\nset size to (100) %\nforever\n    if <touching (mouse-pointer v)?> then\n        set [ghost v] effect to (10)\n        set size to (105) %\n    else\n        set [ghost v] effect to (0)\n        set size to (100) %\n    end\nend\n\nwhen I receive [begin now v]\nshow\ngo to x: (200) y: (161)\nforever\n    go to [front v] layer\n    play sound [Elektronomia - Sky High \[NCS Release\]2 v] until done\nend\n\nif <(volume) = [100]> then\n    set volume to (0) %\n    switch costume to (muted v)\nelse\n    set volume to (2) %\n    switch costume to (unmuted v)\nend\n\nwhen flag clicked\nforever\n    if <<(costume [number v]) = [1]> or <(costume [number v]) = [3]>> then\n        set volume to (0) %\n    else\n        set volume to (30) %\n    end\nend\n\nwhen flag clicked\n\nforever\n    if <(dark mode?) = [y]> then\n        switch costume to (unmuted2 v)\n    else\n        switch costume to (unmuted v)\n    end\nend\n\n\n\nwhen I receive [dark on v]\nif <(costume [number v]) = [1]> then\n    switch costume to (muted2 v)\nelse\n    switch costume to (unmuted2 v)\nend\n\nwhen I receive [dark off v]\nif <(costume [number v]) = [3]> then\n    switch costume to (muted v)\nelse\n    switch costume to (unmuted v)\nend\n\nswitch costume to (unmuted v)\n\n@saw\n\nwhen flag clicked\nforever\n    go to [back v] layer\n    turn right (4) degrees\nend\n\nwhen flag clicked\nset size to (50) %\nforever\n    if <(level) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\nif <<(level) = [4]> or <<(level) = [6]> or >> then\n    show\n    if <<(level) = [4]> or <(level) = [6]>> then\n        set size to (100) %\n        go to x: (0) y: (-120)\n    end\n    if <(level) = [10]> then\n        set size to (70) %\n        go to x: (-47) y: (-33)\n    end\nelse\n    hide\nend\n\nif <<(level) = [4]> or <(level) = [6]>> then\n    set size to (100) %\n    go to x: (0) y: (-120)\nend\nif <(level) = [10]> then\n    set size to (70) %\n    go to x: (-47) y: (-33)\nend\n\nwhen flag clicked\nforever\n    if <(dark mode?) = [y]> then\n        set [brightness v] effect to (100)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\n@transition\n\nwhen flag clicked\nhide\ngo to [front v] layer\ngo to x: (0) y: (347)\n\nwhen I receive [trans v]\ngo to [front v] layer\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (100)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nwait (.3) seconds\ngo to [front v] layer\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nswitch costume to (pick random (1) to (6))\nshow\nrepeat until <(round (y position)) = [0]>\n    go to [front v] layer\n    change y by (((0) - (y position)) / (5))\nend\nrepeat until <(round (y position)) = [347]>\n    go to [front v] layer\n    change y by (15)\nend\nhide\n\nwhen I receive [next v]\nwait (.000000000000000000000001) seconds\nbroadcast (trans v)\n\nswitch costume to (pick random (1) to (6))\nshow\nrepeat until <(round (y position)) = [0]>\n    go to [front v] layer\n    change y by (((0) - (y position)) / (5))\nend\nrepeat until <(round (y position)) = [347]>\n    go to [front v] layer\n    change y by (((347) - (y position)) / (5))\nend\nhide\n\nwhen flag clicked\n\nwhen I receive [st v]\nbroadcast (trans v)\nbroadcast (BEGIN NOW v)\n\n@tn\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\n\nshow\ngo to x: (0) y: (0)\ngo to [front v] layer\n\n@start screen\n\nwhen flag clicked\nshow\nset size to (100) %\ngo to x: (0) y: (0)\n\nwhen flag clicked\nforever\n    if <(ST?) = [n]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [st v]\nhide\n\n@play\n\nwhen flag clicked\nshow\ngo to [front v] layer\nset size to (100) %\ngo to x: (0) y: (0)\n\nwhen flag clicked\nset [st? v] to [n]\nshow\ngo to x: (0) y: (0)\nforever\n    if <(ST?) = [n]> then\n        if <touching (mouse-pointer v)?> then\n            switch costume to (costume2 v)\n            play sound [click v] until done\n            wait until <not <touching (mouse-pointer v)?>>\n        else\n            switch costume to (costume1 v)\n        end\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nset [st? v] to [y]\nbroadcast (ST v)\nhide\n\nset [st? v] to [y]\n\n@how to play\n\nwhen flag clicked\nshow\nset size to (100) %\ngo to x: (0) y: (0)\n\nwhen flag clicked\nforever\n    if <(ST?) = [n]> then\n        if <touching (mouse-pointer v)?> then\n            switch costume to (costume2 v)\n            play sound [click v] until done\n            wait until <not <touching (mouse-pointer v)?>>\n        else\n            switch costume to (costume1 v)\n        end\n    else\n        hide\n    end\nend\n\nif <(ST?) = [n]> then\n\nwhen [space v] key pressed\nif <(costume [number v]) = [3]> then\n    broadcast (trans v)\n    switch costume to (costume1 v)\nend\n\nwhen this sprite clicked\nswitch costume to (costume3 v)\ngo to [front v] layer\n\n@credits\n\nwhen flag clicked\nshow\nset size to (100) %\ngo to x: (0) y: (0)\n\nwhen flag clicked\nforever\n    if <(ST?) = [n]> then\n        if <touching (mouse-pointer v)?> then\n            switch costume to (costume2 v)\n            play sound [click v] until done\n            wait until <not <touching (mouse-pointer v)?>>\n        else\n            switch costume to (costume1 v)\n        end\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nswitch costume to (costume3 v)\ngo to [front v] layer\n\nwhen [space v] key pressed\nif <(costume [number v]) = [3]> then\n    broadcast (trans v)\n    switch costume to (costume1 v)\nend\n\n