Blue - A mobile friendly platformer
@Stage\n\n@Level\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (46) y: (23)\nset [level v] to [1]\nforever\n    switch costume to (Level)\nend\n\nwhen this sprite clicked\n\nwhen flag clicked\nwait until <(Level) = [10]>\nplay sound [YOU WON! v] until done\n\n@Player\n\nwhen I receive [delete clones v]\ndelete this clone\n\nwhen I start as a clone\nswitch costume to (trail v)\nset size to (95) %\ngo to [front v] layer\ngo [backward v] (10) layers\nshow\ngo to (player v)\nrepeat (25)\n    change size by (-1)\n    change [ghost v] effect by (5)\nend\ndelete this clone\n\ndefine Slope Detection\nif <touching (level v)?> then\n    set [my variable v] to [0]\nend\nrepeat until <<(my variable) = [8]> or <not <touching (level v)?>>>\n    change [my variable v] by (1)\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by ((my variable) / (-1))\n    repeat ([ceiling v] of ([abs v] of (Xv) ) )\n        if <touching (level v)?> then\n            change x by ((([abs v] of (Xv) ) / (Xv)) * (-1))\n        end\n    end\n    set [xv v] to [0]\nend\n\nwhen I receive [start v]\nforever\n    switch costume to (player v)\n    show\n    go to [front v] layer\n    go [forward v] (1000) layers\n    change [yv v] by (-1)\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<(mouse x) < (x position)> and <mouse down?>>> then\n        change [xv v] by (-1.5)\n        point in direction (-90)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<(mouse x) > (x position)> and <mouse down?>>> then\n        change [xv v] by (1.5)\n        point in direction (90)\n    end\n    set [xv v] to ((Xv) * (0.8))\n    change x by (Xv)\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 (-4)\n        change x by ((Xv) * (-1))\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<(mouse y) > (y position)> and <mouse down?>>> then\n            set [yv v] to [11]\n            if <([abs v] of (Xv) ) = (Xv)> then\n                set [xv v] to [-9]\n            else\n                set [xv v] to [10]\n            end\n        else\n            set [xv v] to [0]\n        end\n    end\n    change y by (Yv)\n    if <touching (level v)?> then\n        change y by ((Yv) - ((Yv) * (2)))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<(mouse y) > (y position)> and <mouse down?>>> and <touching (level v)?>> then\n        set [yv v] to [12.5]\n    end\n    change y by (1)\n    Slope Detection\n    if <touching (trampoline v)?> then\n        set [yv v] to [15]\n    end\n    if <<touching (spikes v)?> or <<touching (gears2 v)?> or <<touching (gears3 v)?> or <touching (gears4 v)?>>>> then\n        set [yv v] to [0]\n        set [xv v] to [0]\n        broadcast (DELETE CLONES v)\n        go to x: (-220) y: (-50)\n        point in direction (90)\n    end\n    if <<(x position) > [239]> and <(Level) < [20]>> then\n        point in direction (90)\n        set [yv v] to [0]\n        set [xv v] to [0]\n        change [level v] by (1)\n        broadcast (DELETE CLONES v)\n        go to x: (-220) y: (-50)\n    end\n    if <(y position) < [-169]> then\n        set [yv v] to [0]\n        set [xv v] to [0]\n        point in direction (90)\n        go to x: (-220) y: (-50)\n        broadcast (DELETE CLONES v)\n    end\n    if <<key (q v) pressed?> and <(Level) < [20]>> then\n        wait until <not <key (q v) pressed?>>\n        broadcast (DELETE CLONES v)\n        point in direction (90)\n        go to x: (-220) y: (-50)\n        set [xv v] to [0]\n        set [yv v] to [0]\n        change [level v] by (1)\n    end\nend\n\nwhen I receive [start v]\nforever\n    create clone of (_myself_ v)\n    wait (0.05) seconds\nend\n\nwhen flag clicked\npoint in direction (90)\ngo to x: (-220) y: (-40)\nset [level v] to [1]\nset [yv v] to [0]\nset [xv v] to [0]\n\nwhen flag clicked\nbroadcast (Start v)\n\nwhen flag clicked\nforever\n    play sound [mbb-beach v] until done\nend\n\n@Bubbles\n\nwhen flag clicked\nset [ghost v] effect to (50)\nhide\n\nwhen I start as a clone\ngo to [back v] layer\ngo to x: (200) y: (pick random (50) to (180))\nshow\nrepeat until <(x position) < [-200]>\n    change x by (-3)\n    if <<([costume name v] of [platform v]) > [6]> and <([costume name v] of [platform v]) < [11]>> then\n        hide\n        delete this clone\n    end\nend\nrepeat (10)\n    hide\n    delete this clone\nend\n\nwhen I receive [instructions v]\nhide\n\nwhen I receive [nonono v]\nshow\n\nwhen I receive [start v]\nforever\n    if <(Level) = [11]> then\n        repeat (10)\n            set [ghost v] effect to (100)\n            hide\n            delete this clone\n        end\n    else\n        wait (2) seconds\n        create clone of (_myself_ v)\n    end\nend\n\n@Spikes\n\nwhen flag clicked\nhide\ngo to [back v] layer\nforever\n    switch costume to (Level)\n    if <(Level) = [7]> then\n        go to [front v] layer\n    else\n        go to [back v] layer\n    end\nend\n\nwhen I receive [start v]\nshow\n\n
Green:\nhttps://scratch.mit.edu/projects/409152847/\n\nUse arrow keys or WAD keys to move avoid the spikes and get to the end\nDifficulty: Easy\n\nThank you for the feedback! (I am reading the comments) I actually did this a long time ago but just had to reshare it sorry it is quite easy