Pride Platformer!
@Stage\n\n@Flag\n\ndefine omega\nif <not <touching (ground v)?>> then\n    switch costume to (join [ball] (<key (right arrow v) pressed?> + (<key (left arrow v) pressed?> * (-1))))\n    change [xv v] by ((<key (left arrow v) pressed?> * (-3)) + (<key (right arrow v) pressed?> * (3)))\nend\nset [xv v] to ((Xv) * (0.7))\nchange x by (Xv)\ndetect slope: (8) (20) (13)\nchange [yv v] by (-1)\nchange y by (Yv)\nif <touching (ground v)?> then\n    out2 <(Yv) > [0]>\nend\nchange y by (-1)\nif <<touching (ground v)?> and <<key (up arrow v) pressed?> or <key (space v) pressed?>>> then\n    start sound [Jump v]\n    set [yv v] to [15]\nend\nif <touching (sprite4 v)?> then\n    set [yv v] to [18]\nend\nchange y by (1)\nif <<touching (bad v)?> or <(y position) < [-178]>> then\n    go to x: (-220) y: (0)\n    point in direction (90)\n    set [yv v] to [0]\n    set [xv v] to [0]\nend\nif <(x position) > [239]> then\n    change [level v] by (1)\n    hide\n    go to x: (-220) y: (0)\n    point in direction (90)\n    set [yv v] to [0]\n    set [xv v] to [0]\n    broadcast (message1 v) and wait\n    show\nend\n\nwhen flag clicked\nbroadcast (del v)\nset [yv v] to [0]\nset [xv v] to [0]\nset [level v] to [1]\nswitch costume to (gay-pride v)\nset size to (10) %\npoint in direction (90)\nshow\nset [ghost v] effect to (0)\ngo to x: (-211) y: (0)\nforever\n    omega\nend\n\ndefine out <boolean1>\nset [i v] to [0]\nif <boolean1> then\n    repeat until <<not <touching (ground v)?>> or <(i) > [8]>>\n        change [i v] by (1)\n        change x by (-1)\n    end\nelse\n    if <[0] > (Xv)> then\n        repeat until <<not <touching (ground v)?>> or <(i) > [8]>>\n            change [i v] by (1)\n            change x by (1)\n        end\n    end\nend\n\ndefine out2 <boolean1>\nset [i v] to [0]\nif <boolean1> then\n    repeat until <<not <touching (ground v)?>> or <(i) > [24]>>\n        change [i v] by (1)\n        change y by (-1)\n    end\n    set [yv v] to [-1]\nelse\n    repeat until <<not <touching (ground v)?>> or <(i) > [24]>>\n        change [i v] by (1)\n        change y by (1)\n    end\n    set [yv v] to [0]\nend\n\ndefine detect slope: (maxslope) (walljump) (jumpheight)\nset [i v] to [0]\nrepeat until <<(i) > (maxslope)> or <not <touching (ground v)?>>>\n    change [i v] by (1)\n    change y by (1)\nend\nset [i2 v] to (i)\nif <touching (ground v)?> then\n    out <(Xv) > [0]>\n    change y by ((0) - (i2))\n    if <<key (up arrow v) pressed?> or <key (space v) pressed?>> then\n        start sound [Jump v]\n        if <(Xv) > [0]> then\n            set [xv v] to ((0) - (walljump))\n        else\n            set [xv v] to (walljump)\n        end\n        set [yv v] to (jumpheight)\n    else\n        set [xv v] to [0]\n    end\nend\n\nwhen this sprite clicked\nnext costume\n\n@Ground\n\nwhen flag clicked\nforever\n    switch costume to (level)\nend\n\n@Bad\n\nwhen flag clicked\nforever\n    go to [back v] layer\n    switch costume to (level)\nend\n\n
Use the arrow keys to move the flag. Click the flag to change it. This is the story of how I came out to my family!