an unfinished platformer

Instructions: I re-found motivation! Full game will be out soon!

@Stage\n\nwhen flag clicked\nforever\n    play sound [bensound-perception v] until done\nend\n\n@Player\n\nwhen flag clicked\nhide variable [mouse v]\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\ndefine Game On\nset [sy v] to [0]\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset size to (50) %\nset [ghost v] effect to (0)\nshow\nset [scroll x v] to (CHECKPOINT-X)\nset [scroll y v] to ((CHECKPOINT-Y) - (34))\nset [x v] to (CHECKPOINT-X)\nset [y v] to ((CHECKPOINT-Y) - (34))\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\ngo [backward v] (1) layers\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        broadcast (Tick v)\n        Tick\n    end\n    if <(EXIT) = [win]> then\n        Game - Win\n    else\n        Game - Die\n    end\nend\n\ndefine Tick\nif <<key (left arrow v) pressed?> or <<key (q v) pressed?> or <key (a v) pressed?>>> then\n    Change Player x by [-8]\nend\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    Change Player x by [8]\nend\nif <touching (platforms3 v)?> then\n    broadcast (spring v)\n    set [sy v] to [60]\nend\nif <<key (up arrow v) pressed?> or <<key (z v) pressed?> or <key (w v) pressed?>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [22]\n    end\nend\nchange [sy v] by (-2)\nif  then\n    set [sy v] to [-10]\nend\nChange Player y by (sy)\nPosition\nTest - Die\nset [scroll x v] to (x)\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (3)))\nif <(SCROLL Y) < [70]> then\n    set [scroll y v] to [70]\nend\nPosition\nif <(y) < [-200]> then\n    set [exit v] to [die]\n    start sound [Splash v]\nend\n\ndefine Change Player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (platforms 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 by (sx)\nchange [x v] by (sx)\nPosition\nif <touching (platforms v)?> then\n    repeat (12)\n        change [y v] by (1)\n        Position\n        if <not <touching (platforms v)?>> then\n            stop [this script v]\n        end\n    end\n    change [y v] by (-12)\n    repeat until <not <touching (platforms 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\n\ndefine Game - Die\nset [exit v] to []\nrepeat (3)\n    hide\n    wait (0.1) seconds\n    show\n    wait (0.1) seconds\nend\nhide\nwait (0.5) seconds\n\ndefine Test - Die\nif <touching (danger v)?> then\n    set [exit v] to [die]\nend\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\n@platforms2\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\ndefine position (x) (y)\nset [ghost v] effect to (0)\ngo to [back v] layer\ngo [forward v] ((id) - (-10)) layers\nswitch costume to (id)\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 platfom (xpos) (ypos) (id)\nset [id v] to (id)\nset [x v] to (xpos)\nset [y v] to (ypos)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I start as a clone\nhide\n\nwhen I receive [setup v]\nclear graphic effects\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (level 0 0 v)\nplatfom [2350] [260] [16]\nplatfom [-450] [0] [1]\nplatfom [0] [0] [2]\nplatfom [450] [0] [3]\nplatfom [1350] [0] [5]\nplatfom [1800] [0] [6]\nplatfom [2350] [0] [7]\nplatfom [2800] [0] [8]\nplatfom [3350] [0] [9]\nplatfom [900] [0] [4]\nplatfom [-450] [260] [10]\nplatfom [0] [260] [11]\nplatfom [450] [260] [12]\nplatfom [900] [260] [13]\nplatfom [1350] [260] [14]\nplatfom [1800] [260] [15]\nplatfom [2800] [260] [17]\nplatfom [3350] [260] [18]\nplatfom [900] [260] [19]\nplatfom [1350] [0] [0]\nset [x v] to [100000000000000000000]\nset [y v] to [0]\n\n@Platforms\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\ndefine position (x) (y)\nswitch costume to (hack v)\nset size to (100) %\nset [ghost v] effect to (100)\ngo to [back v] layer\ngo [backward v] (0) layers\nswitch costume to (id)\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 platfom (xpos) (ypos) (id)\nset [id v] to (id)\nset [x v] to (xpos)\nset [y v] to (ypos)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nclear graphic effects\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (level 0 0 v)\nplatfom [-450] [0] [1]\nplatfom [0] [0] [2]\nplatfom [450] [0] [3]\nplatfom [900] [0] [4]\nplatfom [1350] [0] [5]\nplatfom [1800] [0] [6]\nplatfom [2350] [0] [7]\nplatfom [2800] [0] [8]\nplatfom [3350] [0] [9]\nplatfom [-450] [260] [10]\nplatfom [0] [260] [11]\nplatfom [450] [260] [12]\nplatfom [900] [260] [13]\nplatfom [1350] [260] [14]\nplatfom [1800] [260] [15]\nplatfom [2350] [260] [16]\nplatfom [2800] [260] [17]\nplatfom [3350] [260] [18]\n\n@Checkpoint\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    go to [front v] layer\n    switch costume to (flag v)\n    Clone at x: [-30] y: [130]\n    Clone at x: [1305] y: [40]\nend\nset [x v] to [100000000000000]\nset [y v] to [0]\n\ndefine position (x) (y)\ngo to x: (x) y: ((y) - (50))\nturn right (((direction) - (90)) / (-8)) degrees\nset [brightness v] effect to (((direction) - (90)) * (2))\nif <<(x) = (x position)> and <((y) - (50)) = (y position)>> then\n    show\n    if <touching (player v)?> then\n        if <not <(CHECKPOINT-X) = (x)>> then\n            point in direction (135)\n            set [brightness v] effect to (((direction) - (90)) * (2))\n        end\n        set [checkpoint-x v] to (x)\n        set [checkpoint-y v] to (y)\n    end\n    if <<(CHECKPOINT-Y) = (y)> and <(CHECKPOINT-X) = (x)>> then\n        switch costume to (on v)\n    else\n        switch costume to (off v)\n    end\nelse\n    hide\nend\ngo to [back v] layer\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nshow\nset size to (140) %\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\nset [checkpoint-y v] to [130]\nset [checkpoint-x v] to [0]\n\n@Sprite1\n\nwhen flag clicked\nset [i v] to [0]\nrepeat (4)\n    create clone of (_myself_ v)\n    change [i v] by (1)\nend\nhide\n\nwhen I start as a clone\nswitch costume to (pick random (1) to (2))\n\nwhen I receive [tick v]\nshow\nset [ghost v] effect to (90)\ngo to x: (((SCROLL X) + ((i) * (-2400))) / (-5)) y: ((SCROLL Y) / (-5))\ngo to [back v] layer\n\nwhen I start as a clone\nhide\n\n@water\n\nwhen I receive [tick v]\nposition (((80) - (SCROLL Y)) + (([sin v] of ((timer) * (100)) ) * (10)))\n\nwhen I receive [setup v]\nclear graphic effects\nhide\nset [y v] to [-60]\nswitch costume to (kostüm1 v)\n\ndefine position (y)\ngo to x: (0) y: (y)\nif <(y) = (y position)> then\n    show\nelse\n    hide\nend\nset [ghost v] effect to (45)\npoint in direction ((([cos v] of ((timer) * (100)) ) * (2)) + (90))\ngo to [front v] layer\ngo [backward v] (10) layers\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\ngo to [back v] layer\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\n\nwhen I receive [reset v]\nset [ghost v] effect to (0)\nhide\n\n@Sprite2\n\nwhen flag clicked\ngo to x: (00) y: (0)\nshow\nwait (0) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\n@Thumbnail\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    set [ghost v] effect to (100)\n    go to x: (0) y: (0)\nend\n\n