<div class="gmail_quote">On Sat, Jul 16, 2011 at 12:34 AM, Mark Engelberg <span dir="ltr">&lt;<a href="mailto:mark.engelberg@gmail.com">mark.engelberg@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im"><br>
</div>Because the image is not only dependent upon the current location of<br>
the sprite, but also the entire history of the sprite&#39;s movements when<br>
its pen was down.  So you either have to store a very long list of<br>
line segments in the world structure, redrawing them every time, or<br>
alternatively, the world structure is comprised of the current sprite<br>
info and a picture of what has been drawn thus far.<br><br></blockquote><div><br></div><div>Ah, right. How about you keep the picture separate, and functions like &#39;move&#39;, &#39;rotate&#39;, etc. add to a list in the sprite structure; when the sprite structure is passed to the draw handler, the draw handler updates the picture based on those new segments or whatever, and then clears them from the sprite&#39;s list. This way you don&#39;t have to conflate the sprite with the picture, nor do you have to worry about efficiency w.r.t. redrawing the entire history of the sprite movement every draw update. Tests for the &#39;tick&#39; handler can be written in a functional style since only the sprite structure is involved. ?</div>

</div><br>