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