First, thanks to everyone who helped me out during yesterday's ShoesFest. I had a lot of fun. If you didn't see it, this was my ShoesFest project:
http://the-shoebox.org/apps/60 The code is here: http://github.com/eki/shoesfest/tree/master Some parts of the code are a little sloppier than I'd like, but it was a one day effort to build a UI for a library I already had. For the next ShoesFest I'm thinking about working on a Sprite widget. Goals: * Animated movement * nudge -- give the sprite a little push, it'd eventually slow to a stop, potentially useful with keyboard input * ease -- move the sprite to a given point, the sprite would slow down as it reaches it's destination (ease into place) * travel -- set the sprite in motion in a given direction at a given speed. It would continue moving indefintely * soft_stop -- slow to a stop * hard_stop -- stop immediately For animated movement, it would be helpful to be able to read the (x,y) coordinates of an imageblock (I plan on backing the Sprite with an imageblock). If it's not there, though, it's not a big deal, I can store (x,y) separately in the Sprite. Also, is it possible, from a Widget, to get it's parent? Whether a Stack, Flow, or Shoes::App? This would be useful for bounding the Sprite's motion. Is it possible to get siblings? Like, say we have a Sprite in a Stack that also contains, say, a Wall Widget. It'd be nice if the Sprite could find it's sibling the Wall and bounce off it. * Animated show / hide * fade -- Change the opacity of the Sprite so it fades away * appear -- Change the opacity of the Sprite so it gradually appears It'd be super handy if the existing show / hide mehtods took a time parameter and handled animation themselves. Short of that, it'd help to be able read the children of an imageblock and each child's opacity (fill / stroke). If we can't read fill / stroke, it'll be tough to write general code for this. It'd be nice to be able to change fill / stroke, but I could write the code to redraw each child with adjusted fill / stroke. * Color shift -- gradually change a given color into another color. This would sort of be a generalization of fade / appear, but we could apply the change to parts of a Sprite. Say, a Sprite is composed of several rects and ovals, it'd be cool to change all the blue rects and ovals to red while leaving the other colors alone. That's probably more than enough to try to accomplish on a single day. To wrap it up, if the following could be added to Shoes it'd be greatly appreciated: * Read (x,y) coords of imageblocks (and Shapes, Images, etc as a bonus) * Read fill / stroke * Bug fix for the imageblock.clear crash * Navigate parent, children, siblings for Widgets (actually, maybe we can already do this?) * Change fill / stroke (not necessary) Thanks again to everyone who made the first ShoesFest so much fun! Eric -- [EMAIL PROTECTED]
