Scratch cat dash || A platformer dash
@Stage\n\nwhen [space v] key pressed\nset [mouse v] to (join ((mouse x) + (scroll x)) (join [,] ((mouse y) + (scroll y))))\n\nwhen flag clicked\nswitch backdrop to (blank v)\n\nwhen I receive [intro done v]\nswitch backdrop to (skyyyy v)\n\n@Platform3\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\nhide\ngo to [back v] layer\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [450] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [300] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [500] y: [0]\n    Clone at x: [500] y: [0]\n    Clone at x: [300] y: [0]\n    Clone at x: [300] y: [0]\n    Clone at x: [300] y: [0]\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nset [exit v] to [die]\n\nwhen I receive [outro v]\nrepeat (10)\n    delete this clone\nend\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Blank\n\n@Player\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (reset v) and wait\n    broadcast (setup v) and wait\n    Game-on\n    repeat until <(EXIT) > []>\n        tick\n        broadcast (tick v) and wait\n    end\n    if <(EXIT) = [win]> then\n        Game-Win\n    else\n        Game-die\n    end\nend\n\ndefine Game-on\nset [_frame v] to [0]\nif <(___checkpoint) = [0]> then\n    set [x v] to [0]\n    set [y v] to [0]\n    set [scroll x v] to [0]\n    set [scroll y v] to [0]\nelse\n    if <(___checkpoint) = [1]> then\n        set [x v] to [500]\n        set [y v] to [0]\n        set [scroll x v] to [500]\n        set [scroll y v] to [0]\n    else\n        if <(___checkpoint) = [2]> then\n            set [x v] to [1350]\n            set [y v] to [0]\n            set [scroll x v] to [1350]\n            set [scroll y v] to [0]\n        else\n            if <(___checkpoint) = [3]> then\n                set [x v] to [2900]\n                set [y v] to [0]\n                set [scroll x v] to [2900]\n                set [scroll y v] to [0]\n            end\n        end\n    end\nend\nset [sx v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset size to (50) %\ngo to [front v] layer\nset [ghost v] effect to (0)\nshow\n\ndefine tick\nset rotation style [left-right v]\nswitch costume to (hit box v)\nchange [sx v] by (1.5)\nset [sx v] to ((sx) * (0.8))\nnext costume\npoint in direction (90)\nif <([abs v] of (sx) ) > [0.9]> then\n    Change player x (round (sx))\nend\nif <<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nif <(sy) > [-20]> then\n    change [sy v] by (-2)\nend\nChange player y (sy)\ntest-die\nset [scroll x v] to (x)\nif <(scroll x) < [0]> then\n    set [scroll x v] to [0]\nend\nif <(scroll y) < [0]> then\n    set [scroll y v] to [0]\nend\nif <[4650] < (x)> then\n    set [x v] to [4650]\n    switch costume to (stand v)\n    stop [other scripts in sprite v]\n    stop [this script v]\nend\nposition\nif <(y position) < [-170]> then\n    set [exit v] to [die]\nend\nSet costume\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\n\nwhen flag clicked\nhide\n\ndefine Change player y (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nposition\nrepeat until <not <touching (platform v)?>>\n    if <(sy) > [0]> then\n        change [y v] by (-1)\n    else\n        change [y v] by (1)\n        set [in air v] to [0]\n    end\n    position\n    set [sy v] to [0]\nend\n\ndefine position\ngo to x: ((x) - (scroll x)) y: ((y) - (scroll y))\n\ndefine Change player x (sx)\nchange [x v] by (sx)\nposition\nif <touching (platform v)?> then\n    repeat (12)\n        change [y v] by (1)\n        position\n        if <not <touching (platform v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    repeat until <not <touching (platform v)?>>\n        if <(sx) > [0]> then\n            change [x v] by (-1)\n        else\n            change [x v] by (1)\n        end\n        position\n    end\nend\nchange [_frame v] by (1)\n\ndefine Game-die\nset [___________down v] to [14]\nset [exit v] to []\nswitch costume to (die1b3 v)\nwait (0.1) seconds\nswitch costume to (die2b v)\nwait (0.1) seconds\nswitch costume to (die3b v)\nwait (0.1) seconds\nrepeat until <(y position) > [-170]>\n    change [___________down v] by (-1)\n    change y by (___________down)\nend\nhide\n\nrepeat (5)\nend\n\nshow\n\nwait (0.1) seconds\nrepeat (10)\n    change y by (-10)\nend\nhide\n\nwait (0.5) seconds\n\ndefine test-die\nif <touching (danger v)?> then\n    set [exit v] to [die]\nend\n\ndefine Set costume\nif <[4] > (in air)> then\n    if <not <(sy) > [0]>> then\n        switch costume to (_frame)\n    end\nelse\n    if <(sy) > [0]> then\n        switch costume to (run_j1 v)\n    else\n        switch costume to (run_j2 v)\n    end\nend\nif <(_frame) > [19]> then\n    set [_frame v] to [5]\nend\n\nset size to (50) %\n\ndefine Game-Win\nrepeat (50)\n    point towards (exit v)\n    turn right (65) degrees\n    move ((distance to [exit v]) / (2)) steps\n    change size by (-1)\n    change [ghost v] effect by (-2)\nend\nhide\nchange [level v] by (1)\nwait (1) seconds\n\nif <<<(mouse x) < (x position)> and <mouse down?>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n    point in direction (-90)\nelse\n    if <<<(x position) < (mouse x)> and <mouse down?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>> then\n        change [sx v] by (2)\n    else\n        set [_frame v] to [0]\n    end\nend\n\nwhen I receive [intro done v]\nshow\nbroadcast (play game v) and wait\nbroadcast (green flag v) and wait\n\nif <key (space v) pressed?> then\n\nwhen I receive [outro v]\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Intro\n\nif <(Play intro?) = [yes]> then\n\nwhen I start as a clone\nif <(costume [number v]) = [19]> then\n    go to x: (0) y: (0)\n    show\n    repeat (30)\n        switch costume to (costume14 v)\n        change size by (((150) - (size)) / (7))\n        switch costume to (front v)\n    end\n    wait (9.5) seconds\n    repeat (30)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [20]> then\n    show\n    wait (9.5) seconds\n    repeat (30)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [21]> then\n    wait (1) seconds\n    set [ghost v] effect to (0)\n    go to x: (0) y: (200)\n    show\n    set size to (150) %\n    repeat (3)\n        set [ghost v] effect to (0)\n        repeat (30)\n            change y by (((0) - (y position)) / (4))\n        end\n        wait (1) seconds\n        repeat (20)\n            change [ghost v] effect by (7)\n        end\n        set y to (200)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [22]> then\n    wait (1.5) seconds\n    set [ghost v] effect to (0)\n    go to x: (0) y: (200)\n    show\n    set size to (150) %\n    repeat (3)\n        set [ghost v] effect to (0)\n        repeat (30)\n            change y by (((0) - (y position)) / (4))\n        end\n        wait (1) seconds\n        repeat (20)\n            change [ghost v] effect by (7)\n        end\n        set y to (200)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [23]> then\n    wait (2) seconds\n    set [ghost v] effect to (0)\n    go to x: (0) y: (200)\n    show\n    set size to (150) %\n    repeat (3)\n        set [ghost v] effect to (0)\n        repeat (30)\n            change y by (((0) - (y position)) / (4))\n        end\n        wait (1) seconds\n        repeat (20)\n            change [ghost v] effect by (7)\n        end\n        set y to (200)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [24]> then\n    wait (2.5) seconds\n    set [ghost v] effect to (0)\n    go to x: (0) y: (200)\n    show\n    set size to (150) %\n    repeat (3)\n        set [ghost v] effect to (0)\n        repeat (30)\n            change y by (((0) - (y position)) / (4))\n        end\n        wait (1) seconds\n        repeat (20)\n            change [ghost v] effect by (7)\n        end\n        set y to (200)\n    end\n    delete this clone\nend\n\nset [ghost v] effect to (0)\n\nwhen I start as a clone\nif <(costume [number v]) = [26]> then\n    wait (1) seconds\n    set x to (-10)\n    set y to (-100)\n    show\n    set [lx v] to [0]\n    set [ghost v] effect to (100)\n    repeat (30)\n        change [ghost v] effect by (-5)\n    end\n    repeat (5)\n        repeat (30)\n            set x to (([tan v] of (lx) ) * (13))\n            change [lx v] by (-5)\n        end\n        if <[28] > (costume [number v])> then\n            next costume\n        else\n            switch costume to ((costume [number v]) - (1))\n        end\n    end\n    repeat until <(x position) = [0]>\n        set x to (([tan v] of (lx) ) * (13))\n        change [lx v] by (-5)\n    end\n    repeat (30)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\ndelete this clone\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\ngo to x: (0) y: (0)\npoint in direction (90)\nset size to (100) %\nswitch costume to (costume10 v)\nclear graphic effects\nswitch costume to (back v)\ncreate clone of (_myself_ v)\nswitch costume to (middle 3 v)\ncreate clone of (_myself_ v)\nswitch costume to (middle 4 v)\ncreate clone of (_myself_ v)\nswitch costume to (middle 1 v)\ncreate clone of (_myself_ v)\nswitch costume to (middle 2 v)\ncreate clone of (_myself_ v)\nswitch costume to (front v)\ncreate clone of (_myself_ v)\nswitch costume to (loading 1 v)\ncreate clone of (_myself_ v)\nwait (10) seconds\nbroadcast (Intro v)\n\nwhen I receive [stop v]\nrepeat (10)\n    delete this clone\nend\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen I start as a clone\nif <<[10] < (costume [number v])> and <(costume [number v]) < [13]>> then\n    set size to (100) %\n    set [ghost v] effect to (100)\n    go to x: (200) y: (100)\n    point in direction (0)\n    show\n    set [i2 v] to [0]\n    repeat (30)\n        change [ghost v] effect by (-5)\n        set [x2 v] to (((0) - (x position)) / (5))\n        change y by (((0) - (y position)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change x by (x2)\n    end\n    repeat (30)\n        change [ghost v] effect by (10)\n        set [x2 v] to (((-200) - (x position)) / (5))\n        change y by (((-100) - (y position)) / (5))\n        turn right (((0) - (direction)) / (5)) degrees\n        change x by (x2)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <<[0] < (costume [number v])> and <(costume [number v]) < [11]>> then\n    set size to (100) %\n    set [ghost v] effect to (100)\n    go to x: (0) y: (200)\n    show\n    set [i2 v] to [0]\n    repeat (30)\n        change [ghost v] effect by (-5)\n        set [x2 v] to (((0) - (y position)) / (5))\n        change y by (x2)\n    end\n    repeat (30)\n        change [ghost v] effect by (10)\n        set [x2 v] to (((-180) - (y position)) / (5))\n        change y by (x2)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <<[12] < (costume [number v])> and <(costume [number v]) < [15]>> then\n    set size to (100) %\n    set [ghost v] effect to (100)\n    go to x: (-200) y: (-100)\n    point in direction (180)\n    show\n    set [i2 v] to [0]\n    repeat (30)\n        change [ghost v] effect by (-5)\n        set [x2 v] to (((0) - (x position)) / (5))\n        change y by (((0) - (y position)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change x by (x2)\n    end\n    repeat (30)\n        change [ghost v] effect by (10)\n        set [x2 v] to (((200) - (x position)) / (5))\n        change y by (((100) - (y position)) / (5))\n        turn right (((180) - (direction)) / (5)) degrees\n        change x by (x2)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [17]> then\n    set size to (0) %\n    go to x: (0) y: (0)\n    set [ghost v] effect to (0)\n    point in direction (180)\n    show\n    set [i2 v] to [0]\n    repeat (40)\n        switch costume to (zcostume12 v)\n        turn right (((90) - (direction)) / (5)) degrees\n        change size by (((500) - (size)) / (10))\n        switch costume to (costume12 v)\n    end\n    repeat (40)\n        change size by (((0) - (size)) / (5))\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [18]> then\n    set size to (0) %\n    go to x: (0) y: (0)\n    set [ghost v] effect to (0)\n    point in direction (180)\n    show\n    set [size v] to [0]\n    repeat (50)\n        turn right (((90) - (direction)) / (5)) degrees\n        set [size v] to (((size) * (.8)) + (((100) - (size)) / (5)))\n        change size by (size)\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [15]> then\n    set size to (0) %\n    go to x: (0) y: (0)\n    set [ghost v] effect to (0)\n    point in direction (180)\n    show\n    set [i2 v] to [0]\n    repeat (50)\n        switch costume to (zcostume12 v)\n        turn right (((90) - (direction)) / (5)) degrees\n        change size by (((5000) - (size)) / (10))\n        switch costume to (costume11 v)\n    end\n    repeat (60)\n        change size by (((0) - (size)) / (5))\n        turn right (15) degrees\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen I receive [intro v]\nhide\nswitch costume to (costume10 v)\nrepeat (10)\n    create clone of (_myself_ v)\n    next costume\nend\nwait (1) seconds\nswitch costume to (costume11 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume12 v)\ncreate clone of (_myself_ v)\nswitch costume to (logo v)\nrepeat (4)\n    create clone of (_myself_ v)\n    next costume\n    wait (.01) seconds\nend\nwait (1.8) seconds\nswitch costume to (costume13 v)\ncreate clone of (_myself_ v)\nwait (5) seconds\nbroadcast (Intro done v)\n\nwhen flag clicked\n\nwhen I receive [intro done v]\nrepeat (10)\n    delete this clone\nend\nstop [other scripts in sprite v]\nstop [this script v]\n\nbroadcast (Intro done v)\n\n@Sun and sun shade\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\npoint in direction (([sin v] of ((50) * (timer)) ) * (70))\n\nwhen flag clicked\n\nwhen I receive [tick v]\nswitch costume to (sun sade v)\ngo to [back v] layer\nset size to (100) %\npoint in direction ((((((100) * ([sin v] of ((50) * (timer)) )) + (90)) - (direction)) / (2)) + (90))\nset [ghost v] effect to (60)\n\nset size to (100) %\n\ngo to x: (220) y: (180)\n\nwhen I receive [intro done v]\nshow\ncreate clone of (_myself_ v)\nswitch costume to (sun v)\nset [ghost v] effect to (100)\ngo to x: (220) y: (180)\ngo to [front v] layer\n\nwhen I receive [outro v]\nrepeat (10)\n    delete this clone\nend\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Platform2\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (scroll x)) ((y) - (scroll y))\nturn right (((90) - (direction)) / (5)) degrees\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\n\nwhen I start as a clone\nforever\n    if <(costume [number v]) = [2]> then\n        if <touching (player v)?> then\n            point in direction (170)\n            switch costume to (open v)\n            change [___checkpoint v] by (1)\n        end\n    end\nend\n\nwhen I receive [intro done v]\nset [___checkpoint v] to [0]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (closed v)\nClone at x: [500] y: [-10]\nClone at x: [1350] y: [-10]\nClone at x: [2900] y: [-10]\nset [x v] to [-9999999999999999999999999]\n\nwhen I receive [outro v]\nrepeat (10)\n    delete this clone\nend\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Danger\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [200] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [100] y: [0]\n    Clone at x: [800] y: [0]\n    Clone at x: [450] y: [0]\n    Clone at x: [450] y: [0]\n    Clone at x: [600] y: [0]\n    Clone at x: [360] y: [0]\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nset [exit v] to [die]\n\nwhen I receive [outro v]\nrepeat (10)\n    delete this clone\nend\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Sprite2\n\n@Platform\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (scroll x)) ((y) - (scroll y))\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [600] y: [0]\n    Clone at x: [485] y: [0]\n    Clone at x: [450] y: [0]\n    Clone at x: [470] y: [0]\n    Clone at x: [400] y: [0]\n    Clone at x: [300] y: [0]\n    Clone at x: [500] y: [0]\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen flag clicked\n\nset [exit v] to [die]\n\nwhen I receive [outro v]\nrepeat (10)\n    delete this clone\nend\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@end flag\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (scroll x)) ((y) - (scroll y))\nturn right (((90) - (direction)) / (5)) degrees\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\n\nwhen I start as a clone\nforever\n    if <touching (player v)?> then\n        point in direction (170)\n        broadcast (Won! v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [intro done v]\nset [___checkpoint v] to [0]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (closed v)\nClone at x: [4650] y: [-10]\nset [x v] to [-9999999999999999999999999]\n\nwhen I receive [outro v]\nrepeat (10)\n    delete this clone\nend\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@You win\n\nwhen flag clicked\ngo to x: (240) y: (0)\nhide\n\nwhen I receive [won! v]\nset [color v] effect to (0)\nset [ghost v] effect to (100)\nshow\ngo to [front v] layer\ngo to x: (240) y: (0)\nrepeat until <(round (x position)) = [0]>\n    change x by (((0) - (x position)) / (5))\n    change [ghost v] effect by (-10)\nend\nwait (2) seconds\nbroadcast (Outro v)\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen [timer v] > (.01)\nset [ghost v] effect to (100)\nhide\n\n@TB\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (100)\n\nwhen I receive [tick v]\ngo to [front v] layer\nshow\nset [ghost v] effect to (100)\n\n@Outro\n\nwhen flag clicked\n\nwhen I start as a clone\nif <(costume [number v]) = [1]> then\n    set size to (0) %\n    set [ghost v] effect to (0)\n    go to x: (0) y: (0)\n    show\n    repeat until <(size) = [100]>\n        change size by (((100) - (size)) / (4))\n    end\n    wait until <(__outro) = [3]>\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [2]> then\n    set size to (0) %\n    set [ghost v] effect to (0)\n    go to x: (0) y: (0)\n    show\n    repeat until <(size) = [100]>\n        change size by (((100) - (size)) / (4))\n    end\n    wait (2) seconds\n    repeat (10)\n        switch costume to (costume1 v)\n        change [ghost v] effect by (15)\n        change size by (((500) - (size)) / (4))\n        turn right (3) degrees\n        switch costume to (thanks v)\n    end\n    set [__outro v] to [3]\n    delete this clone\nend\n\nforever\n\nwhen I start as a clone\nif <(costume [number v]) = [3]> then\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    go to x: (0) y: (0)\n    go to [back v] layer\n    show\n    forever\n        change y by (((([cos v] of ((timer) * (75)) ) * (-75)) - (y position)) * (0.9))\n        turn right ((((90) + (([cos v] of ((timer) * (50)) ) * (20))) - (direction)) * (0.9)) degrees\n    end\nend\n\nrepeat until <(size) < [80]>\n    change size by (((75) - (size)) / (6))\nend\n\nrepeat (2)\n\nwhen I start as a clone\nif <(costume [number v]) = [4]> then\n    set [color v] effect to (0)\n    set size to (250) %\n    set [ghost v] effect to (0)\n    go to x: (80) y: (0)\n    show\n    repeat until <(size) = [100]>\n        change size by (((100) - (size)) / (4))\n    end\n    forever\n        point in direction ((([tan v] of ((Rotate) * (150)) ) * (5)) + (90))\n        change [rotate v] by (0.02)\n        set y to ((0) + (([sin v] of ((300) * (timer)) ) * (10)))\n        change size by ((((([sin v] of ((150) * (timer)) ) * (15)) + (100)) - (size)) / (5))\n    end\nend\n\nrepeat until <(size) = [200]>\n\nwait (2) seconds\nset [__outro v] to [3]\ndelete this clone\n\nset size to (100) %\n\nwhen flag clicked\nset [rotate v] to [0]\n\nwhen I start as a clone\nif <(costume [number v]) = [5]> then\n    set size to (100) %\n    point in direction (90)\n    set [ghost v] effect to (0)\n    set [color v] effect to (0)\n    go to x: (-140) y: (70)\n    show list [link! \(project 1\) v]\n    show\n    forever\n        point in direction ((([sin v] of ((timer) * (400)) ) * (3)) + (90))\n        set [bounce 2 v] to (((Bounce 2) * (0.7)) + ((((100) + (<touching (mouse-pointer v)?> * (16))) - (size)) / (2)))\n        change size by (Bounce 2)\n        if <touching (mouse-pointer v)?> then\n            hide list [link! \(project 1\) v]\n        else\n            show list [link! \(project 1\) v]\n        end\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [6]> then\n    set size to (100) %\n    point in direction (90)\n    set [ghost v] effect to (0)\n    go to x: (-140) y: (-75)\n    show list [link! \(project 2\) v]\n    show\n    set [color v] effect to (0)\n    forever\n        point in direction ((([sin v] of ((timer) * (400)) ) * (3)) + (90))\n        set [bounce v] to (((bounce) * (0.7)) + ((((100) + (<touching (mouse-pointer v)?> * (16))) - (size)) / (2)))\n        change size by (bounce)\n        if <touching (mouse-pointer v)?> then\n            hide list [link! \(project 2\) v]\n        else\n            show list [link! \(project 2\) v]\n        end\n    end\nend\n\nwhen flag clicked\ndelete all of [link! \(project 1\) v]\ndelete all of [link! \(project 2\) v]\nshow list [link! \(project 1\) v]\nshow list [link! \(project 2\) v]\nadd [https://scratch.mit.edu/projects/447110561/] to [link! \(project 1\) v]\nadd [https://scratch.mit.edu/projects/430442354/] to [link! \(project 2\) v]\n\nwhen I start as a clone\nif <(costume [number v]) = [7]> then\n    set size to (100) %\n    point in direction (90)\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    go to x: (-140) y: (-100)\n    show\n    go to x: (0) y: (0)\n    forever\n        if <touching (mouse-pointer v)?> then\n            change y by (((-135) - (y position)) / (4))\n        else\n            change y by (((-250) - (y position)) / (4))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [8]> then\n    set size to (100) %\n    point in direction (90)\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    go to x: (0) y: (0)\n    show\n    go to x: (0) y: (0)\n    forever\n        if <touching (mouse-pointer v)?> then\n            change x by (((-150) - (x position)) / (4))\n        else\n            change x by (((90) - (x position)) / (4))\n        end\n    end\nend\n\ndefine Particles\nswitch costume to (particles v)\nrepeat (70)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [9]> then\n    set size to (pick random (75) to (150)) %\n    set [ghost v] effect to (pick random (0) to (50))\n    set [brightness v] effect to (pick random (-30) to (30))\n    point in direction (pick random (-180) to (180))\n    go to x: (0) y: (0)\n    set [outro: x v] to (pick random (10) to (12))\n    set [y v] to (pick random (2) to (7))\n    go to [front v] layer\n    show\n    repeat until <touching (_edge_ v)?>\n        move (Outro: x) steps\n        change y by (y)\n        set [outro: x v] to ((Outro: x) * (0.95))\n        change [y v] by (-0.4)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [10]> then\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    go to x: (50) y: (-100)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            change size by (((130) - (size)) / (4))\n        else\n            change size by (((100) - (size)) / (4))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [11]> then\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    go to x: (100) y: (-100)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            change size by (((130) - (size)) / (4))\n        else\n            change size by (((100) - (size)) / (4))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [12]> then\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    go to x: (150) y: (-100)\n    show\n    forever\n        if <touching (mouse-pointer v)?> then\n            change size by (((130) - (size)) / (4))\n        else\n            change size by (((100) - (size)) / (4))\n        end\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [13]> then\n    go to x: (-240) y: (-180)\n    set [ghost v] effect to (100)\n    set [color v] effect to (0)\n    point in direction (90)\n    show\n    forever\n        point in direction ((([sin v] of ((timer) * (50)) ) * (30)) + (90))\n        change [ghost v] effect by (-5)\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [14]> then\n    go to x: (240) y: (-180)\n    set [ghost v] effect to (100)\n    set [color v] effect to (0)\n    point in direction (-90)\n    show\n    forever\n        point in direction ((([sin v] of ((timer) * (50)) ) * (30)) + (90))\n        change [ghost v] effect by (-5)\n    end\nend\n\nset [bounce 3 v] to (((Bounce 3) * (0.7)) + ((((100) + (<touching (mouse-pointer v)?> * (16))) - (size)) / (5)))\nchange size by (Bounce 3)\n\nwhen I start as a clone\nif <(costume [number v]) = [16]> then\n    set [color v] effect to (0)\n    set [ghost v] effect to (0)\n    set size to (0) %\n    go to x: (80) y: (80)\n    show\n    set [sss v] to [0]\n    forever\n        switch costume to (usernamejjj2 v)\n        turn right ((((([sin v] of ((100) * (timer)) ) * (10)) + (90)) - (direction)) * (0.8)) degrees\n        set y to ((80) + (([sin v] of ((300) * (timer)) ) * (10)))\n        if <touching (mouse-pointer v)?> then\n            set [sss v] to (((sss) * (.8)) + (((130) - (size)) / (4)))\n        else\n            set [sss v] to (((sss) * (.8)) + (((100) - (size)) / (4)))\n        end\n        change size by (sss)\n        switch costume to (usernamejjj v)\n    end\nend\n\nwhen I receive [outro v]\nhide\nset [__outro v] to [0]\nhide\nswitch costume to (default v)\nset [color v] effect to (0)\nset size to (100) %\nset [ghost v] effect to (0)\nset [color v] effect to (0)\nclear graphic effects\ngo to x: (0) y: (0)\npoint in direction (90)\nset [__outro v] to [1]\nswitch costume to (filter v)\nrepeat (7)\n    create clone of (_myself_ v)\n    change [color v] effect by (2)\n    wait (0.2) seconds\nend\nset [__outro v] to [2]\nswitch costume to (thanks v)\ncreate clone of (_myself_ v)\nwait until <(__outro) = [3]>\nswitch costume to (background v)\ncreate clone of (_myself_ v)\nParticles\nswitch costume to (oc v)\ncreate clone of (_myself_ v)\nswitch costume to (project 1 v)\ncreate clone of (_myself_ v)\nswitch costume to (project 2 v)\ncreate clone of (_myself_ v)\nswitch costume to (love v)\ncreate clone of (_myself_ v)\nswitch costume to (fav v)\ncreate clone of (_myself_ v)\nswitch costume to (follow v)\ncreate clone of (_myself_ v)\nswitch costume to (hover v)\ncreate clone of (_myself_ v)\nswitch costume to (usernamejjj v)\ncreate clone of (_myself_ v)\nswitch costume to (slide v)\ncreate clone of (_myself_ v)\nswitch costume to (light 1 v)\ncreate clone of (_myself_ v)\nswitch costume to (light 2 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [stop v]\nrepeat (10)\n    delete this clone\nend\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen I receive [stop v]\nclear sound effects\nstop all sounds\n\nwhen I receive [outro v]\nforever\n    play sound [Post Malone - SunFlower \(Trap Remix\) FT3 v] until done\nend\n\n
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀✿ Scratch cat dash! ✿\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀✿ A dash game! ✿\n➪ My latest game which has good graphics!\n➪ I took 3 hours to make this so, please love, fav and follow  :D\n\n➪ Info - \n Don't touch spikes.\n Grab your check points!\n Blue flags are checkpoints\n Red flag is the end point.\n\n\n➪ Credits - \n@0014049 for inspiration.\n@GravityV for some art and inspiration of the art.\n@Griffpatch for the cat walk cycle and for the scrolling engine.\n@StratfordJames for some art and BG.\n@ for fixing lag.\n\n➪ Others all by me.\n➪ Please tell me if I forgot to credit anyone.\n\n➪ Make sure to Love, fav and follow :D\n\n- Enjoy!