[plt-scheme] Double buffer (scheme/gui)

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Apr 11 13:31:46 EDT 2009

Probably you want to pass the 'no-autoclear style to the canvas%
object when you create it (I may have got the precise name wrong, but
it is listed in the docs for the initialization arguments to canvas%).

But you also probably want to only recreate the bitmaps when their
content changes, not every time the window is refreshed. In other
words, all but the last line below should be somewhere else, not in
the on-paint method.


On Sat, Apr 11, 2009 at 12:25 PM, CHAMLY <marc.chamly at gmail.com> wrote:
> HI!
> I am programming a game on scheme using #lang scheme/gui, the game is  made
> of:
> 1) an object (copter) that when you click moves up, otherwise it falls down,
> and does not move horizontaly.
> 2) a tunnel that moves from right to left, giving the impression that the
> object is moving forward (moving to the right reaching the end of the
> tunnel).
> I have a little problem with my double buffer,
> I'm using two bitmaps one to draw the copter, and one to draw my tunnel
> Here is what i have in the paint-callback of my canvas:
>             (send BITMAP-DC-1 clear)              ; i move my tunnel
>             (send TUNNEL draw-tunnel1  BITMAP-DC-1  y1)
>             (send dc draw-bitmap BITMAP-1  (- x-canvas) 0 'solid))
>             (send BITMAP-DC-2 clear)     ; i move my copter
>             (send BITMAP-DC-2 draw-bitmap copterUp  0 0 'solid)
>             (send dc draw-bitmap BITMAP-2  150 (send COPTER get-y-copter)
>  'solid))
> The problem is that my copter still flickers, and i don't know why??
> (i don't draw my copter in BITMAP-DC-1 because afterwords i also use other
> bitmaps to draw my tunnel)
> thanks
> Marc
>            _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.