Rope- A platformer test

Instructions: More levels coming soon!\n1000 views and I didnt even notice........\nLet me show you the ropes...\nHang on to the rope\nDon't fall\nDOUBLE JUMP!!!!!\nperhaps.... leave a follow :)

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\nbroadcast (Rope v)\nset [length v] to [30]\n\nwhen I receive [next v]\nnext backdrop\n\n@Player\n\nwhen flag clicked\nset [xposition v] to [0]\nset [yposition v] to [0]\ngo to x: (-200) y: (50)\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [speed v] to [1.2]\nset [jumpheight v] to [9]\nset [friction v] to [.8]\nset [doublejump v] to [yes]\nset [noswing v] to [0]\nset [swinging? v] to [no]\nset [jumps v] to [0]\nforever\n    point in direction (90)\n    change x by (Xvel)\n    if <touching color (#3dd851)?> then\n        change y by ([abs v] of (Xvel) )\n        if <touching color (#3dd851)?> then\n            change y by ([abs v] of (Xvel) )\n            if <touching color (#3dd851)?> then\n                go to x: (XPosition) y: (YPosition)\n                set [xvel v] to [0]\n            else\n                set [xposition v] to (x position)\n                set [yposition v] to (y position)\n            end\n        else\n            set [xposition v] to (x position)\n            set [yposition v] to (y position)\n        end\n    else\n        set [xposition v] to (x position)\n    end\n    change y by (Yvel)\n    if <touching color (#3dd851)?> then\n        go to x: (XPosition) y: (YPosition)\n        if <not <touching color (#3dd851)?>> then\n            change y by (-1)\n            if <not <touching color (#3dd851)?>> then\n                change y by (-1)\n                if <not <touching color (#3dd851)?>> then\n                    change y by (-1)\n                    if <not <touching color (#3dd851)?>> then\n                        change y by (-1)\n                        if <not <touching color (#3dd851)?>> then\n                            change y by (-1)\n                            if <not <touching color (#3dd851)?>> then\n                                change y by (-1)\n                                if <not <touching color (#3dd851)?>> then\n                                    change y by (-1)\n                                    if <not <touching color (#3dd851)?>> then\n                                        change y by (-1)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        change y by (1)\n        set [yposition v] to (y position)\n        if <(DoubleJump) = [yes]> then\n            set [jumps v] to [0]\n        end\n        if <<key (up arrow v) pressed?> and <(Yvel) < [0]>> then\n            set [yvel v] to (JumpHeight)\n        else\n            set [yvel v] to [0]\n        end\n    else\n        if <(DoubleJump) = [yes]> then\n            if <(Jumps) = [0]> then\n                set [jumps v] to [1]\n            end\n            if <(Jumps) = [1]> then\n                if <not <key (up arrow v) pressed?>> then\n                    set [jumps v] to [2]\n                end\n            end\n            if <(Jumps) = [2]> then\n                if <key (up arrow v) pressed?> then\n                    change [jumps v] by (1)\n                    set [yvel v] to (JumpHeight)\n                end\n            end\n        end\n        change [yvel v] by (-1)\n        set [yposition v] to (y position)\n    end\n    if <key (right arrow v) pressed?> then\n        change [xvel v] by (Speed)\n    end\n    if <key (left arrow v) pressed?> then\n        change [xvel v] by ((-1) - (Speed))\n    end\n    set [xvel v] to ((Xvel) * (Friction))\n    if <(NoSwing) = [0]> then\n        if <touching color (#bd5400)?> then\n            set [swinging? v] to [yes]\n            repeat (1)\n            set [jumps v] to [0]\n            repeat until <(Jumps) = [2]>\n                go to (point5 v)\n                point towards (point4 v)\n                set [xvel v] to ((x position) - (XPosition))\n                set [yvel v] to ((y position) - (YPosition))\n                set [xposition v] to (x position)\n                set [yposition v] to (y position)\n                if <not <key (up arrow v) pressed?>> then\n                    set [jumps v] to [1]\n                end\n                if <(Jumps) = [1]> then\n                    if <key (up arrow v) pressed?> then\n                        set [jumps v] to [2]\n                    end\n                end\n            end\n            change [yvel v] by (5)\n            set [jumps v] to [1]\n            set [noswing v] to [10]\n            set [swinging? v] to [no]\n        end\n    end\n    if <(NoSwing) > [0]> then\n        change [noswing v] by (-1)\n    end\nend\n\nwhen flag clicked\nif <[-170] > (y position)> then\n    go to x: (-200) y: (-61)\nend\n\nforever\n\nwhen flag clicked\nforever\n    if <(x position) > [214]> then\n        broadcast (next v)\n    end\nend\n\nwhen I receive [next v]\ngo to x: (-200) y: (29)\n\n@Rope\n\nwhen I receive [rope v]\nset pen size to (5)\nset pen color to (#bd5400)\npen up\nerase all\nforever\n    erase all\n    go to (point1 v)\n    pen down\n    go to (point2 v)\n    go to (point3 v)\n    go to (point4 v)\n    go to (point5 v)\n    pen up\nend\n\nwhen flag clicked\nset pen size to (5)\nset pen color to (#bd5400)\npen up\nerase all\n\n@Point5\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [show v]\nshow\n\nwhen flag clicked\nhide\n\nwhen I receive [rope v]\nset [rovel. v] to [0]\nset [rodir v] to [180]\nset [rox v] to ([x position v] of [point4 v])\nset [roy v] to ([y position v] of [point4 v])\nset [roa v] to [1]\nset [rod v] to (Length)\nset [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\nset [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\nset x to (RX)\nset y to (RY)\nforever\n    set [rox v] to ([x position v] of [point4 v])\n    set [roy v] to ([y position v] of [point4 v])\n    set [rod v] to (Length)\n    if <((y position) - (RoY)) = [0]> then\n        if <(x position) > (RoX)> then\n            set [rodir v] to [90]\n        else\n            set [rodir v] to [-90]\n        end\n    else\n        if <((y position) - (RoY)) < [0]> then\n            set [rodir v] to (([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) ) + (180))\n        else\n            set [rodir v] to ([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) )\n        end\n    end\n    change [rovel. v] by ((0) - ([sin v] of (RoDir) ))\n    set [roa v] to (RoVel.)\n    set [rovel. v] to ((RoVel.) * (0.9))\n    set [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\n    set [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\n    set x to (RX)\n    set y to (RY)\n    if <(Swinging?) = [yes]> then\n        if <(Swing?I) = [0]> then\n            change [rovel. v] by (([xvel v] of [player v]) * (3.14))\n            set [swing?i v] to [1]\n        end\n        if <key (right arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) + (90)) / (2)) )\n        end\n        if <key (left arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) - (90)) / (2)) )\n        end\n    else\n        set [swing?i v] to [0]\n    end\nend\n\n@Point4\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [show v]\nshow\n\nwhen flag clicked\nhide\n\nwhen I receive [rope v]\nset [rovel. v] to [0]\nset [rodir v] to [180]\nset [rox v] to ([x position v] of [point3 v])\nset [roy v] to ([y position v] of [point3 v])\nset [roa v] to [1]\nset [rod v] to (Length)\nset [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\nset [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\nset x to (RX)\nset y to (RY)\nforever\n    set [rox v] to ([x position v] of [point3 v])\n    set [roy v] to ([y position v] of [point3 v])\n    set [rod v] to (Length)\n    if <((y position) - (RoY)) = [0]> then\n        if <(x position) > (RoX)> then\n            set [rodir v] to [90]\n        else\n            set [rodir v] to [-90]\n        end\n    else\n        if <((y position) - (RoY)) < [0]> then\n            set [rodir v] to (([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) ) + (180))\n        else\n            set [rodir v] to ([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) )\n        end\n    end\n    change [rovel. v] by ((0) - ([sin v] of (RoDir) ))\n    set [roa v] to (RoVel.)\n    set [rovel. v] to ((RoVel.) * (0.9))\n    set [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\n    set [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\n    set x to (RX)\n    set y to (RY)\n    if <(Swinging?) = [yes]> then\n        if <(Swing?I) = [0]> then\n            change [rovel. v] by (([xvel v] of [player v]) * (3.14))\n            set [swing?i v] to [1]\n        end\n        if <key (right arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) + (90)) / (3)) )\n        end\n        if <key (left arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) - (90)) / (3)) )\n        end\n    else\n        set [swing?i v] to [0]\n    end\nend\n\n@Point3\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [show v]\nshow\n\nwhen flag clicked\nhide\n\nwhen I receive [rope v]\nset [rovel. v] to [0]\nset [rodir v] to [180]\nset [rox v] to ([x position v] of [point2 v])\nset [roy v] to ([y position v] of [point2 v])\nset [roa v] to [1]\nset [rod v] to (Length)\nset [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\nset [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\nset x to (RX)\nset y to (RY)\nforever\n    set [rox v] to ([x position v] of [point2 v])\n    set [roy v] to ([y position v] of [point2 v])\n    set [rod v] to (Length)\n    if <((y position) - (RoY)) = [0]> then\n        if <(x position) > (RoX)> then\n            set [rodir v] to [90]\n        else\n            set [rodir v] to [-90]\n        end\n    else\n        if <((y position) - (RoY)) < [0]> then\n            set [rodir v] to (([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) ) + (180))\n        else\n            set [rodir v] to ([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) )\n        end\n    end\n    change [rovel. v] by ((0) - ([sin v] of (RoDir) ))\n    set [roa v] to (RoVel.)\n    set [rovel. v] to ((RoVel.) * (0.9))\n    set [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\n    set [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\n    set x to (RX)\n    set y to (RY)\n    if <(Swinging?) = [yes]> then\n        if <(Swing?I) = [0]> then\n            change [rovel. v] by (([xvel v] of [player v]) * (2.5))\n            set [swing?i v] to [1]\n        end\n        if <key (right arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) + (90)) / (4)) )\n        end\n        if <key (left arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) - (90)) / (4)) )\n        end\n    else\n        set [swing?i v] to [0]\n    end\nend\n\n@Point2\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [show v]\nshow\n\nwhen flag clicked\nhide\n\nwhen I receive [rope v]\nset [swing?i v] to [0]\nset [rovel. v] to [0]\nset [rodir v] to [180]\nset [rox v] to ([x position v] of [point1 v])\nset [roy v] to ([y position v] of [point1 v])\nset [roa v] to [1]\nset [rod v] to (Length)\nset [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\nset [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\nset x to (RX)\nset y to (RY)\nforever\n    set [rox v] to ([x position v] of [point1 v])\n    set [roy v] to ([y position v] of [point1 v])\n    set [rod v] to (Length)\n    if <((y position) - (RoY)) = [0]> then\n        if <(x position) > (RoX)> then\n            set [rodir v] to [90]\n        else\n            set [rodir v] to [-90]\n        end\n    else\n        if <((y position) - (RoY)) < [0]> then\n            set [rodir v] to (([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) ) + (180))\n        else\n            set [rodir v] to ([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) )\n        end\n    end\n    change [rovel. v] by ((0) - ([sin v] of (RoDir) ))\n    set [roa v] to (RoVel.)\n    set [rovel. v] to ((RoVel.) * (0.9))\n    set [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\n    set [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\n    set x to (RX)\n    set y to (RY)\n    if <(Swinging?) = [yes]> then\n        if <(Swing?I) = [0]> then\n            change [rovel. v] by (([xvel v] of [player v]) * (2))\n            set [swing?i v] to [1]\n        end\n        if <key (right arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) + (90)) / (5)) )\n        end\n        if <key (left arrow v) pressed?> then\n            change [rovel. v] by ([sin v] of ((([direction v] of [player v]) - (90)) / (5)) )\n        end\n    else\n        set [swing?i v] to [0]\n    end\nend\n\n@Point1\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [show v]\nshow\n\nwhen flag clicked\nhide\n\nwhen I receive [rope v]\nset [rovel. v] to [0]\nset [rodir v] to [180]\nset [rox v] to [0]\nset [roy v] to [60]\nset [roa v] to [1]\nset [rod v] to (Length)\nset [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\nset [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\nset [rox v] to [0]\nset [roy v] to [150]\nset x to (RX)\nset y to (RY)\nforever\n    set [rod v] to (Length)\n    if <((y position) - (RoY)) = [0]> then\n        if <(x position) > (RoX)> then\n            set [rodir v] to [90]\n        else\n            set [rodir v] to [-90]\n        end\n    else\n        if <((y position) - (RoY)) < [0]> then\n            set [rodir v] to (([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) ) + (180))\n        else\n            set [rodir v] to ([atan v] of (((x position) - (RoX)) / ((y position) - (RoY))) )\n        end\n    end\n    change [rovel. v] by ((0) - ([sin v] of (RoDir) ))\n    set [roa v] to (RoVel.)\n    set [rovel. v] to ((RoVel.) * (0.9))\n    set [rx v] to ((([sin v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoX))\n    set [ry v] to ((([cos v] of ((RoDir) - (RoA)) ) * (RoD)) + (RoY))\n    set x to (RX)\n    set y to (RY)\nend\n\nwhen flag clicked\n\nwhen backdrop switches to [backdrop2 v]\nset [rox v] to [33]\nset [roy v] to [118]\n\nwhen backdrop switches to [backdrop3 v]\nset [rox v] to [-150]\nset [roy v] to [150]\n\nwhen backdrop switches to [backdrop4 v]\nset [rox v] to [-80]\nset [roy v] to [115]\n\nwhen backdrop switches to [backdrop6 v]\nset [roy v] to [88]\nset [rox v] to [-91]\n\n@Sprite2\n\n@Clouds\n\nwhen flag clicked\nset [ghost v] effect to (35)\ngo to [back v] layer\nshow\ngo to x: (-66) y: (90)\nforever\n    glide (25) secs to x: (356) y: (90)\n    go to x: (-365) y: (90)\nend\n\nwhen I receive [game start v]\n\nwhen flag clicked\nforever\n    go to [back v] layer\nend\n\n@Sprite1\n\nwhen flag clicked\nforever\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n