I like the trollish intro -- I was stressing about health for the first minute or so. Not sure I understand the rules around teleports (is it just random?) but I bumbled my way through. Fun little game!
mr_bitshift
Creator of
Recent community posts
Escape From Planet Red! I played this dozens of times as a kid, though I never knew it had a custom font to go with it (maybe I played a different version, or maybe I just lost the font).
The font pairs well with the built-in enemies -- I didn't know what they were at first, which added some fun. And there's meaningful backtracking to previous boards! Aside from the rushed ending (eh, what can you do), this is some real quality plagiarism right here. 💯
Hey, just wanted to make sure I'm on the right track here with a speech bubble component I'm working on:

The roundrect is manually drawn on the contraption's background, with margins set to allow shrinking and growing. The bubble's "tail" is a volatile canvas because the tail needs to change both image (mirror left/right) and position. Right now I'm making those changes from the view handler:
on view do left: state.text in "se","w" mirror: state.text in "sw","w" if left me.margin: 7,25,7,7 tail.pos: 12,tail.pos[1] else me.margin: 7,7,25,7 tail.pos: (me.size[0]-24),tail.pos[1] end img: image["%%IMG2..."] # tail image initially points to the right if mirror img.transform["horiz"] end tail.paste[img] end
I call view[] from each of the set_ handlers, so if the text changes or the direction changes, everything gets repositioned and redrawn. This mostly works, but it has some weird side effects during editing. For example, if I resize the widget, the tail jumps back to its default position (its position in the prototype). And sometimes the volatile tail canvas clears itself during editing, and won't be redrawn until I switch to Interact mode.
Am I on the right track here? Is there something else that should be calling view[]? Or is there a better approach you would recommend?
