I use Ryan solution too with image rendering instead of calling repaint.

One remark : the Graphic class display looks better than the Graphic2D 
class. I have superposition and refreshing, and in my case i got this.

Thanks Ryan !

Le dimanche 25 juillet 2010 18:22:45 UTC+2, Mate Toth a écrit :
>
> Thx guys! 
> I used double-buffering like in Ryan's code and it worked like a 
> charm! 
>
> M 
>
> On Jul 25, 4:01 am, Ryan Sattler <xgravi...@gmail.com> wrote: 
> > I've been working on a game with Clojure/Swing lately and the simplest 
> > way to avoid flashing is to draw to a bufferedImage first, then draw 
> > that bufferedImage all at once. This means that parts of the screen 
> > that don't change won't be briefly overwritten by the background 
> > color, avoiding flashing. Here's some code: 
> > 
> > (defn render [game window] 
> >   (let [#^BufferedImage image (.createImage window window-width window- 
> > height) 
> >         #^Graphics gfx (.createGraphics image) 
> >         #^Graphics2D gfx2 (.getGraphics #^JFrame window)] 
> > 
> >       (render-background gfx) 
> >       ;draw more stuff on gfx here, eg, your draw-boid would go here 
> > 
> >       (.drawImage gfx2 image 0 0 window))) ;finally draws the buffered 
> > image to the screen all at once 
> > 
> > -- 
> > Ryan Sattler

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to