Sketch -A Platformer-  #all #games
@Stage\n\nwhen flag clicked\nwait (4.5) seconds\nforever\n    play sound [\[Electro House\] Virtual Riot - Energy Drink v] until done\n    wait (1) seconds\nend\n\n@Player\n\nwhen flag clicked\ngo to x: (-201) y: (-90)\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nset [x v] to [1]\nforever\n    Platform Gravity: [-1] Jump Height: [13] Movement Speed: [3] Friction: [.7] Slopes: [8]\nend\n\ndefine Platform Gravity: (gravity) Jump Height: (jump height) Movement Speed: (side movement speed) Friction: (friction) Slopes: (slope)\nchange [y velocity v] by (gravity)\nchange y by (Y Velocity)\nif <touching (level v)?> then\n    repeat until <not <touching (level v)?>>\n        change y by ((([abs v] of (Y Velocity) ) / (Y Velocity)) * (-1))\n    end\n    set [y velocity v] to (<<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(([abs v] of (Y Velocity) ) / (Y Velocity)) = [-1]>> * (jump height))\nend\nset [x velocity v] to (((X Velocity) + ((<<key (a v) pressed?> or <key (left arrow v) pressed?>> * ((side movement speed) * (-1))) + (<<key (d v) pressed?> or <key (right arrow v) pressed?>> * (side movement speed)))) * (friction))\nchange x by (X Velocity)\nset [slope v] to [0]\nrepeat until <<(Slope) = ((slope) * (-1))> or <not <touching (level v)?>>>\n    change y by (1)\n    change [slope v] by (-1)\nend\nif <touching (level v)?> then\n    change y by (Slope)\n    repeat until <not <touching (level v)?>>\n        change x by ((([abs v] of (X Velocity) ) / (X Velocity)) * (-1))\n    end\nend\n\nwhen I receive [next level v]\nhide\ngo to x: (-201) y: (-90)\nwait (0.5) seconds\nshow\n\nwhen flag clicked\nforever\n    if <touching (next level v)?> then\n        broadcast (Next Level v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        go to x: (-201) y: (-90)\n        broadcast (Red v)\n        play sound [Pew v] until done\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (bounce pad v)?> then\n        change [y velocity v] by (16.5)\n    end\nend\n\nwhen flag clicked\nshow\n\n@Level\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\n@Next Level\n\n@Shadow\n\nwhen flag clicked\nshow\nset [ghost v] effect to (20)\nforever\n    go to (player v)\nend\n\nwhen I receive [next level v]\nhide\ngo to x: (-201) y: (-90)\nwait (0.5) seconds\nshow\n\nwhen flag clicked\nshow\n\n@next\n\nwhen I receive [next level v]\nswitch costume to ( v)\nset [ghost v] effect to (-100)\nstart sound [切替 v]\ngo to [front v] layer\nshow\ngo to x: (550) y: (0)\nrepeat (20)\n    change x by (((x position) - (0)) / (-5))\nend\nrepeat (20)\n    change x by (((x position) - (-550)) / (-5))\nend\nwait (0) seconds\nset [ghost v] effect to (15)\nwait (0) seconds\nset [ghost v] effect to (40)\nwait (0) seconds\nset [ghost v] effect to (75)\nwait (0) seconds\nset [ghost v] effect to (90)\nwait (0) seconds\nset [ghost v] effect to (100)\n\nwhen flag clicked\nhide\n\ngo to x: (20000) y: (0)\n\n@Spikes\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\n@Red border\n\nwhen flag clicked\nhide\n\nwhen I receive [red v]\nshow\nset [ghost v] effect to (100)\nrepeat (6)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@Intro\n\nwhen I start as a clone\nif <(Clone) = [Particles]> then\n    switch costume to (pick random (29) to (31))\n    set size to (pick random (50) to (150)) %\n    set [ghost v] effect to (pick random (0.) to (5.))\n    set [brightness v] effect to (pick random (-25.) to (100.))\n    go to x: (0) y: (0)\n    point in direction (pick random (-180) to (180))\n    set [intro: x v] to (pick random (10.) to (12.))\n    set [i v] to (pick random (2.) to (9.))\n    go to [front v] layer\n    show\n    repeat until <touching (_edge_ v)?>\n        move (Intro: X) steps\n        change y by (I)\n        change [i v] by (-0.4)\n        set [intro: x v] to ((Intro: X) * (0.95))\n    end\n    delete this clone\nend\n\ndefine Particles\nset [clone v] to [Particles]\nrepeat (50)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(Clone) = [Name]> then\n    switch costume to (name v)\n    set size to (50) %\n    clear graphic effects\n    go to [front v] layer\n    go to x: (0) y: (-100)\n    point in direction (0)\n    show\n    repeat (50)\n        go to [front v] layer\n        change size by (((130) - (size)) / (8))\n        change y by (((0) - (y position)) / (8))\n        turn right (((90) - (direction)) / (8)) degrees\n    end\n    set [i v] to [-1]\n    repeat (10)\n        go to [front v] layer\n        change size by (I)\n        change [i v] by (join [-] (([abs v] of (I) ) / (2)))\n        turn right (I) degrees\n    end\n    switch costume to (logo v)\n    repeat (40)\n        go to [front v] layer\n        change size by (((130) - (size)) / (8))\n        turn right (((90) - (direction)) / (8)) degrees\n    end\n    set [i v] to [-1]\n    repeat (20)\n        go to [front v] layer\n        change size by ((I) / (3))\n        change [i v] by (join [-] (([abs v] of (I) ) / (4)))\n        turn right ((I) / (-3)) degrees\n    end\n    delete this clone\nend\n\nwhen flag clicked\nreset timer\nhide\nstart sound [Electro-Light - Symbolism v]\nset volume to (100) %\nclear graphic effects\nset size to (100) %\npoint in direction (90)\ngo to x: (0) y: (0)\nset [clone v] to [Square]\ncreate clone of (_myself_ v)\nwait (1) seconds\nset [clone v] to [Name]\ncreate clone of (_myself_ v)\nwait (0) seconds\nrepeat (2)\n    Spiral spline explosion\n    Particles\n    Rect\n    Spiral spline explosion\nend\nCircle\nrepeat (4)\n    Spiral spline explosion\n    Particles\n    Rect\n    Spiral spline explosion\nend\nCircle\nrepeat (2)\n    Spiral spline explosion\n    Rect\n    Spiral spline explosion\nend\n\nwhen I start as a clone\nif <(Clone) = [Square]> then\n    clear graphic effects\n    show\n    set size to (0) %\n    go to x: (0) y: (300)\n    point in direction (0)\n    switch costume to (square v)\n    repeat (20)\n        change size by (((100) - (size)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change y by (((0) - (y position)) / (5))\n    end\n    point in direction (90)\n    repeat (12)\n        next costume\n    end\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((2000) - (size)) / (5))\n        switch costume to (square13 v)\n    end\n    wait (3) seconds\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((100) - (size)) / (5))\n        switch costume to (square13 v)\n    end\n    repeat (12)\n        switch costume to ((costume [number v]) - (1))\n        change size by (-5)\n    end\n    set [i v] to [-1]\n    repeat (20)\n        change size by ((I) / (3))\n        change [i v] by (join [-] (([abs v] of (I) ) / (4)))\n        turn right ((I) / (-3)) degrees\n        change y by ((I) / (3))\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(Clone) = [Bursts]> then\n    switch costume to (lineexplosion1 v)\n    clear graphic effects\n    go to [front v] layer\n    go [backward v] (1) layers\n    set [i v] to (pick random (1) to (3))\n    if <(I) = [1]> then\n        set [brightness v] effect to (100)\n    else\n        if <(I) = [2]> then\n            set [brightness v] effect to (25)\n        else\n            set [brightness v] effect to (-25)\n        end\n    end\n    show\n    set [i v] to [20]\n    Animate   x: [0] y: [0] size: [0] rotate: (pick random (-180) to (180)) speed: [1]\n    repeat (2)\n        set [i v] to ((I) * (0.9))\n        move (I) steps\n        Size: [100] speed: [5]\n    end\n    repeat (10)\n        set [i v] to ((I) * (0.9))\n        move (I) steps\n        Size: [100] speed: [5]\n        change [ghost v] effect by (10)\n        next costume\n    end\n    delete this clone\nend\n\ndefine Animate   x: (x) y: (y) size: (s) rotate: (r) speed: (s)\nchange x by (((round (x)) - (round (x position))) / (s))\nchange y by (((round (y)) - (round (y position))) / (s))\nchange size by (((round (s)) - (round (size))) / (s))\nturn right (((round (r)) - (round (direction))) / (s)) degrees\n\ndefine Spiral spline explosion\nset [clone v] to [Bursts]\nrepeat (5)\n    create clone of (_myself_ v)\nend\n\ndefine Size: (s) speed: (spd)\nchange size by (((round (s)) - (round (size))) / (spd))\n\ndefine Rect\nset [clone v] to [Rect]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone) = [Rect]> then\n    clear graphic effects\n    show\n    set size to (0) %\n    go to (random position v)\n    point in direction (90)\n    switch costume to (background rect v)\n    repeat until <(round (size)) = [300]>\n        change size by (((300) - (size)) / (15))\n        change [ghost v] effect by (4)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(Clone) = [Circle]> then\n    clear graphic effects\n    set [brightness v] effect to (100)\n    go to [front v] layer\n    go [backward v] (2) layers\n    show\n    set size to (0) %\n    go to x: (0) y: (0)\n    point in direction (90)\n    switch costume to (circle explosion 1 v)\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((300) - (size)) / (5))\n        switch costume to (circle explosion 1 v)\n    end\n    delete this clone\nend\n\ndefine Circle\nset [clone v] to [Circle]\ncreate clone of (_myself_ v)\nwait (0.1) seconds\nset [clone v] to [Circle 2]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone) = [Circle 2]> then\n    clear graphic effects\n    set [brightness v] effect to (0)\n    go to [front v] layer\n    go [backward v] (1) layers\n    show\n    set size to (0) %\n    go to x: (0) y: (0)\n    point in direction (90)\n    switch costume to (circle explosion 1 v)\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((300) - (size)) / (5))\n        switch costume to (circle explosion 1 v)\n    end\n    delete this clone\nend\n\n@Intro white\n\nwhen flag clicked\nforever\n    show\n    wait (4) seconds\n    forever\n        hide\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (0)\nwait (0) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\n    broadcast (Green Flag clicked v)\nend\nforever\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n@Bounce Pad\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\n@Shading\n\nwhen flag clicked\nset [ghost v] effect to (20)\nswitch costume to (costume1 v)\n\nwhen I receive [next level v]\nwait (0.5) seconds\nnext costume\n\n
Controls:\nWASD and Arrow Keys!\nW= Jump  A= Left  D= Right\nUp Arrow= Jump  Left Arrow= Left  Right Arrow= Right\n\nObjective:\nYour goal is to make it to the other side! will you be successful?\nSpikes are Dangerous! Do not touch them our you will have to respawn,\nall over again! The Green Bounce Pads make you fling in the air! \nsometimes, Its good or bad depending on how you use it!\n\nCredits:\n- Intro by @-PickleAnimator-