Grass platformer 2

Instructions: Arrow keys to move :D\nmy score is 20.393

@Stage\n\n@Player\n\nwhen flag clicked\nshow\nset [x v] to [0]\nset [y v] to [0]\nset [x vel v] to [0]\nset [y vel v] to [0]\nforever\n    Y vel\n    X vel\n    if <touching color (#00d539)?> then\n        broadcast (win v)\n    end\n    if <touching color (#009d2a)?> then\n        broadcast (win v)\n    end\nend\n\ndefine Y vel\nrepeat ([abs v] of (y vel) )\n    change y by (([abs v] of (y vel) ) / (y vel))\n    if <not <<touching (scroling v)?> or <touching (scroling4 v)?>>> then\n        change [y v] by (([abs v] of (y vel) ) / (y vel))\n    else\n        set [y vel v] to [0]\n        if <key (up arrow v) pressed?> then\n            change y by (1)\n            if <not <<touching (scroling v)?> or <touching (scroling4 v)?>>> then\n                set [y vel v] to [12]\n            end\n        end\n    end\nend\nset y to (0)\n\nwhen flag clicked\nforever\n    if <(y vel) > [-10]> then\n        change [y vel v] by (-1)\n    end\n    if <not <(x vel) = [0]>> then\n        change [x vel v] by ((([abs v] of (x vel) ) / (x vel)) * (-1))\n    end\n    if <touching (scroling3 v)?> then\n        set [x v] to [0]\n        set [y v] to [0]\n        set [x vel v] to [0]\n        set [y vel v] to [0]\n    end\n    change y by (-2)\n    if <touching (scroling4 v)?> then\n        set [y vel v] to [17]\n    end\n    set y to (0)\n    wait (0) seconds\nend\n\ndefine X vel\nif <key (right arrow v) pressed?> then\n    if <[10] > (x vel)> then\n        change [x vel v] by (1)\n    end\nend\nif <key (left arrow v) pressed?> then\n    if <(x vel) > [-10]> then\n        change [x vel v] by (-1)\n    end\nend\nrepeat ([abs v] of (x vel) )\n    change x by (([abs v] of (x vel) ) / (x vel))\n    if <not <<touching (scroling v)?> or <touching (scroling4 v)?>>> then\n        change [x v] by (([abs v] of (x vel) ) / (x vel))\n    else\n        set [x vel v] to [0]\n    end\nend\nset x to (0)\n\nwhen I receive [win v]\nhide\n\n@Scroling\n\nwhen flag clicked\nset [x v] to [0]\nset [y v] to [0]\nhide\nFind\nforever\n    broadcast (render v)\n    Render\nend\n\ndefine Find\nswitch costume to (1 v)\nset [find v] to [0]\nrepeat until <(costume [name v]) = [X]>\n    next costume\n    change [find v] by (1)\nend\n\ndefine Render\nset [. v] to [0]\nrepeat (Find)\n    switch costume to ((.) + (2))\n    set [x2 v] to ((((letter (1) of (costume [name v])) - (1)) * (480)) + ((x) * (-1)))\n    set [y2 v] to (((y) * (-1)) + ((letter (3) of (costume [name v])) * (360)))\n    switch costume to (x v)\n    go to x: (x2) y: (y2)\n    switch costume to ((.) + (2))\n    create clone of (_myself_ v)\n    change [. v] by (1)\nend\n\nwhen I start as a clone\nshow\nwait (0) seconds\ndelete this clone\n\n@ise\n\nwhen flag clicked\nshow\nforever\n    if <([abs v] of (y vel) ) = [1]> then\n        glide (0.1) secs to x: ((((x vel) / ([abs v] of (x vel) )) * (3)) + ([x position v] of [player v])) y: (0)\n    else\n        glide (0.1) secs to x: ((((x vel) / ([abs v] of (x vel) )) * (3)) + ([x position v] of [player v])) y: ((((y vel) / ([abs v] of (y vel) )) * (3)) + ([y position v] of [player v]))\n    end\nend\n\nwhen I receive [win v]\nhide\n\n@Scroling2\n\nwhen I receive [render v]\nhide\nFind\nRender\n\ndefine Find\nswitch costume to (1 v)\nset [find 2 v] to [0]\nrepeat until <(costume [name v]) = [X]>\n    next costume\n    change [find 2 v] by (1)\nend\n\ndefine Render\nset [.. v] to [0]\nrepeat (Find 2)\n    switch costume to ((..) + (2))\n    set [x3 v] to ((((letter (1) of (costume [name v])) - (1)) * (480)) + ((x) * (-1)))\n    set [y3 v] to (((y) * (-1)) + ((letter (3) of (costume [name v])) * (360)))\n    switch costume to (x v)\n    go to x: (x3) y: (y3)\n    switch costume to ((..) + (2))\n    create clone of (_myself_ v)\n    change [.. v] by (1)\nend\n\nwhen I start as a clone\nshow\nwait (0) seconds\ndelete this clone\n\n@Scroling3\n\nwhen I receive [render v]\nhide\nFind\nRender\n\ndefine Find\nswitch costume to (1 v)\nset [find 3 v] to [0]\nrepeat until <(costume [name v]) = [X]>\n    next costume\n    change [find 3 v] by (1)\nend\n\ndefine Render\nset [... v] to [0]\nrepeat (Find 3)\n    switch costume to ((...) + (2))\n    set [x4 v] to ((((letter (1) of (costume [name v])) - (1)) * (480)) + ((x) * (-1)))\n    set [y4 v] to (((y) * (-1)) + ((letter (3) of (costume [name v])) * (360)))\n    switch costume to (x v)\n    go to x: (x4) y: (y4)\n    switch costume to ((...) + (2))\n    create clone of (_myself_ v)\n    change [... v] by (1)\nend\n\nwhen I start as a clone\nshow\nwait (0) seconds\ndelete this clone\n\n@Scroling4\n\nwhen I receive [render v]\nhide\nFind\nforever\n    Render\nend\n\ndefine Find\nswitch costume to (1 v)\nset [find 4 v] to [0]\nrepeat until <(costume [name v]) = [X]>\n    next costume\n    change [find 4 v] by (1)\nend\n\ndefine Render\nset [.... v] to [0]\nrepeat (Find 4)\n    switch costume to ((....) + (2))\n    set [x5 v] to ((((letter (1) of (costume [name v])) - (1)) * (480)) + ((x) * (-1)))\n    set [y5 v] to (((y) * (-1)) + ((letter (3) of (costume [name v])) * (360)))\n    switch costume to (x v)\n    go to x: (x5) y: (y5)\n    switch costume to ((....) + (2))\n    create clone of (_myself_ v)\n    change [.... v] by (1)\nend\n\nwhen I start as a clone\nshow\nwait (0) seconds\ndelete this clone\n\n@win\n\nwhen I receive [win v]\ngo to x: (0) y: (0)\ngo to [front v] layer\nshow\nstamp\nhide\nbroadcast (text v)\nstop [all v]\n\nwhen flag clicked\nhide\n\n@text\n\ndefine render (string)\nset [currentletter v] to [0]\nrepeat (length of (string))\n    change [currentletter v] by (1)\n    if <[lowercaseletters v] contains (letter (currentLetter) of (string))?> then\n        switch costume to (join (letter (currentLetter) of (string)) [2])\n    end\n    if <(letter (currentLetter) of (string)) = [ ]> then\n        switch costume to (space v)\n    else\n        switch costume to (letter (currentLetter) of (string))\n    end\n    change x by (14)\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nerase all\nhide\ngo to [front v] layer\nforever\n    erase all\n    go to x: (-235) y: (160)\n    set [brightness v] effect to (100)\n    render (timer)\nend\n\nwhen I start as a clone\nset size to (110) %\nshow\nwait (0) seconds\ndelete this clone\n\nwhen I receive [text v]\ngo to x: (70) y: (150)\nset [brightness v] effect to (100)\nrender 2 (timer)\n\ndefine render 2 (s)\nset [currentletter v] to [0]\nrepeat (length of (s))\n    change [currentletter v] by (1)\n    if <[lowercaseletters v] contains (letter (currentLetter) of (s))?> then\n        switch costume to (join (letter (currentLetter) of (s)) [2])\n    end\n    if <(letter (currentLetter) of (s)) = [ ]> then\n        switch costume to (space v)\n    else\n        switch costume to (letter (currentLetter) of (s))\n    end\n    change x by (17)\n    stamp\nend\n\nwhen I receive [text v]\nstop [other scripts in sprite v]\n\nbroadcast (win v)\n\n@logo\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nhide\n\n