Little Blue Cat - A Scrolling Platformer  (Mobile Friendly) 
@Stage\n\n@obstacles\n\nwhen I start as a clone\nset [id v] to (ob id)\nif <(id) = [1]> then\n    ob control [-500] [10000]\nend\nif <(id) = [2]> then\n    ob control [400] [40]\nend\nif <(id) = [3]> then\n    ob control [1000] [50]\nend\nif <(id) = [4]> then\n    ob control [1400] [70]\nend\nif <(id) = [5]> then\n    ob control [1800] [100]\nend\nif <(id) = [6]> then\n    ob control [3500] [300]\nend\nif <(id) = [7]> then\n    ob control [3950] [80]\nend\nif <(id) = [8]> then\n    ob control [4000] [110]\nend\nif <(id) = [9]> then\n    ob control [4050] [80]\nend\nif <(id) = [10]> then\n    ob control [4900] [10]\nend\nif <(id) = [11]> then\n    ob control [5100] [10]\nend\nif <(id) = [12]> then\n    ob control [5300] [125]\nend\nif <(id) = [13]> then\n    ob control [5600] [40]\nend\nif <(id) = [14]> then\n    ob control [5650] [50]\nend\nif <(id) = [15]> then\n    ob control [5700] [60]\nend\nif <(id) = [16]> then\n    ob control [5750] [50]\nend\nif <(id) = [17]> then\n    ob control [5800] [50]\nend\nif <(id) = [18]> then\n    ob control [6350] [50]\nend\nif <(id) = [19]> then\n    ob control [6100] [125]\nend\nif <(id) = [20]> then\n    ob control [6700] [125]\nend\nif <(id) = [21]> then\n    ob control [7120] [100]\nend\nif <(id) = [22]> then\n    ob control [7150] [100]\nend\nif <(id) = [23]> then\n    ob control [7200] [100]\nend\nif <(id) = [24]> then\n    ob control [7230] [100]\nend\nhide\n\ndefine ob control (x) (s)\nset size to (s) %\nset x to (0)\nset y to (0)\nrepeat until <<touching (_edge_ v)?> or <touching color (#3aff00)?>>\n    change y by (-1)\nend\nset x to (100000000000000000000000000000000000000)\nset [max v] to (x position)\nforever\n    if <<touching (_edge_ v)?> and <(max) < ([abs v] of ((main block) + (x)) )>> then\n        hide\n    else\n        show\n        set x to ((main block) + (x))\n    end\nend\n\nwhen I start as a clone\nforever\n    if <touching (character v)?> then\n        broadcast (message1 v)\n    end\nend\n\nwhen I receive [play v]\nshow\ngo to [front v] layer\nset [id v] to [0]\nset [ob id v] to [0]\nrepeat (30)\n    if <(id) = [0]> then\n        hide\n        change [ob id v] by (1)\n        create clone of (_myself_ v)\n    end\nend\n\n@ground\n\nwhen I start as a clone\nset [id v] to (ground clone id)\nforever\n    if <(id) = [4]> then\n        wait (3) seconds\n        forever\n            got to [0]\n            switch costume to (costume2 v)\n            set y to (100)\n        end\n    else\n        if <[4] < (id)> then\n            got to (((id) * (600)) - (100))\n        else\n            got to ((id) * (600))\n        end\n    end\nend\n\ndefine got to (x position)\nif <<((main block) + (x position)) < [600]> and <((main block) + (x position)) > [-600]>> then\n    set x to ((main block) + (x position))\n    show\nelse\n    hide\nend\n\ndefine start\nset [spawwn v] to [0]\nset [id v] to [0]\nset [main block v] to [0]\nset [ground clone id v] to [0]\nset y to (-165)\nrepeat (20)\n    if <(id) = [0]> then\n        create clone of (_myself_ v)\n        change [ground clone id v] by (1)\n    end\nend\n\nwhen I receive [message1 v]\nset [moveble v] to [0]\nif <(main block) < (spawwn)> then\n    repeat until <not <(main block) < (spawwn)>>\n        change [main block v] by (3)\n    end\nelse\n    repeat until <(main block) < (spawwn)>\n        change [main block v] by (-3)\n    end\nend\nwait (0.2) seconds\nset [moveble v] to [1]\n\nwhen I receive [play v]\nset [moveble v] to [1]\nrepeat (110)\n    set [xvelocity v] to [0]\n    set [main block v] to [0]\n    set [xvel v] to [0]\n    set x to (0)\nend\n\nwhen I receive [play v]\nswitch costume to (costume1 v)\nstart\nforever\n    if <not <(xvelocity) = [0]>> then\n        if <(xvelocity) < [0]> then\n            change [xvelocity v] by (2)\n        end\n        if <[0] < (xvelocity)> then\n            change [xvelocity v] by (-2)\n        end\n    end\n    if <(moveble) = [1]> then\n        if <<key (right arrow v) pressed?> or <<mouse down?> and <[0] < (mouse x)>>> then\n            set [xvelocity v] to [-16]\n        end\n        if <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < [0]>>> then\n            set [xvelocity v] to [16]\n        end\n    end\n    change [main block v] by (xvelocity)\n    if <<((main block) + (item (2) of [id and placement v])) < [600]> and <((main block) + (item (2) of [id and placement v])) > [-600]>> then\n        set x to (main block)\n        show\n    else\n        hide\n    end\n    set [xvel v] to (xvelocity)\nend\n\nwhen flag clicked\nbroadcast (play v)\nset x to (0)\nshow\n\n@character\n\ndefine float\nrepeat until <not <touching (ground v)?>>\n    change y by (1)\nend\nchange y by (-1)\n\nwhen I start as a clone\nnext costume\nrepeat (10)\n    change size by (-7)\n    change [color v] effect by (4)\n    change [ghost v] effect by (5)\n    change x by (xvel)\n    if <(moveble) = [0]> then\n        delete this clone\n    end\nend\ndelete this clone\n\nwhen I receive [message1 v]\nset y to (0)\n\nwhen flag clicked\nforever\n    wait until <touching (ground v)?>\n    play sound [Footstep v] until done\n    wait until <not <touching (ground v)?>>\nend\n\nwhen [s v] key pressed\nwait until <not <key (s v) pressed?>>\nglide (0.5) secs to x: (-30) y: (160)\nset size to (30) %\nrepeat until <key (s v) pressed?>\n    set y to (160)\n    set [yvel v] to [0]\nend\nset size to (100) %\nwait (1) seconds\n\nwhen I receive [play v]\nset size to (100) %\nswitch costume to (costume1 v)\nset [yvel v] to [0]\nrepeat (110)\n    go to x: (-30) y: (0)\nend\nforever\n    float\n    if <touching (ground v)?> then\n        set [yvel v] to [0]\n    else\n        change [yvel v] by (-1.5)\n    end\n    if <<<<<key (space v) pressed?> or <key (up arrow v) pressed?>> or <<mouse down?> and <[20] < (mouse y)>>> and <touching (ground v)?>> and <(moveble) = [1]>> then\n        set [yvel v] to [18]\n    end\n    if <not <(yvel) = [0]>> then\n        change y by (yvel)\n    end\n    create clone of (_myself_ v)\n    if <(moveble) = [0]> then\n        set [xvel v] to [0]\n        set [yvel v] to [0]\n        set y to (0)\n    end\n    if <<touching (_edge_ v)?> and <(y position) < [-150]>> then\n        broadcast (message1 v)\n    end\n    if <touching (sprite5 v)?> then\n        set [yvel v] to [30]\n    end\nend\n\nset [xvel v] to ((xvel) * (3))\n\n@Sprite1\n\nwhen I receive [play v]\ngo to x: (0) y: (0)\nshow\nrepeat (100)\n    turn right (5) degrees\nend\nhide\n\n@Sprite2\n\nwhen I start as a clone\nset [id v] to (flag id)\nhide\nif <(id) = [1]> then\n    forever\n        set [virtual x v] to ((main block) - (item (2) of [save area v]))\n        if <[286] < ([abs v] of (virtual X) )> then\n            hide\n        else\n            show\n            set x to (virtual X)\n        end\n        if <<touching (character v)?> and <not <(spawwn) = (item (2) of [save area v])>>> then\n            set [spawwn v] to (item (2) of [save area v])\n        end\n    end\nend\nif <(id) = [2]> then\n    forever\n        set [virtual x v] to ((main block) - (item (3) of [save area v]))\n        if <[286] < ([abs v] of (virtual X) )> then\n            say []\n            hide\n        else\n            say [You beat it!!! Great job :\)]\n            show\n            set x to (virtual X)\n        end\n        if <<touching (character v)?> and <not <(spawwn) = (item (3) of [save area v])>>> then\n            set [spawwn v] to (item (3) of [save area v])\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    wait (0.08) seconds\n    next costume\nend\n\nwhen I start as a clone\nforever\n    wait (0.08) seconds\n    next costume\nend\n\nwhen I receive [play v]\nset [flag id v] to [0]\nrepeat (2)\n    change [flag id v] by (1)\n    create clone of (_myself_ v)\nend\nforever\n    set [virtual x v] to ((main block) - (item (1) of [save area v]))\n    if <[286] < ([abs v] of (virtual X) )> then\n        hide\n    else\n        show\n        set x to (virtual X)\n    end\n    if <<touching (character v)?> and <not <(spawwn) = (item (1) of [save area v])>>> then\n        set [spawwn v] to (item (1) of [save area v])\n    end\nend\n\n@Sprite3\n\nwhen flag clicked\ncreate clone of (_myself_ v)\ngo to [back v] layer\nshow\nforever\n    if <<[-2137] < (((main block) / (3)) + (70))> and <(((main block) / (3)) + (70)) < [650]>> then\n        set x to (((main block) / (3)) + (70))\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [Chill v] until done\nend\n\nwhen flag clicked\nset [volume v] to [100]\nforever\n    if <key (m v) pressed?> then\n        set [volume v] to [0]\n    end\n    set volume to ((Volume) * (10)) %\n    if <(mouse y) < [-100]> then\n        show variable [volume v]\n    else\n        hide variable [volume v]\n    end\nend\n\nwhen flag clicked\nset [volume v] to [100]\nforever\n    if <key (m v) pressed?> then\n        set [volume v] to [0]\n    end\n    set volume to ((Volume) * (10)) %\n    if <(mouse y) < [-100]> then\n        show variable [volume v]\n    else\n        hide variable [volume v]\n    end\nend\n\nwhen I start as a clone\nforever\n    set [x v] to ([floor v] of (x position) )\n    if <<[-2137] < (((main block) / (3)) + (2300))> and <(((main block) / (3)) + (2300)) < [650]>> then\n        set x to (((main block) / (3)) + (2300))\n        show\n    else\n        hide\n    end\nend\n\n@Sprite4\n\nwhen flag clicked\ngo to x: (0) y: (0)\nclear graphic effects\nrepeat (100)\n    change [ghost v] effect by (2)\nend\nforever\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n@Sprite5\n\nwhen I receive [play v]\nforever\n    if <[273] < ([abs v] of ((main block) + (3200)) )> then\n        hide\n    else\n        show\n        set x to ((main block) + (3200))\n    end\nend\n\n
thank you so much for 700 likes and (almost) 600 faves!!!!!\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ni unshared by accident then forgot to repost till now XD\nIf the character keeps respawning from a certain spot, there is a tiny spike right there\nM to get rid of that music\n<3 and ⭐ would be great \n 'S' is now for scrolling mode or skip\nArrow keys to move \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n99% me,<3 my dad gave me a few ideas \nthanks to RockCraft24 and NapoliFC for <3 and ⭐\n100 % possible even though I only beat it twice without using "s"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nNew scrolling platformer -https://scratch.mit.edu/projects/429482417/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n#games  #platformer  #all  #trending  #scrolling #blue #cat #Games #All #possible #mobilefriendly \n