[gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...

Hi Steve,

Thanks for sending that through.  It looks exactly what I am looking
for and I will certainly make use of it.

Regards

Richard

On 06/02/2008, Stephen & Kelly <gp@xxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> Richard,
>
> All you need to do in Java to get double-buffering is something like:-
>
>
> public class MyClass extends JFrame { // You can extend any Component IIRC
>
>  private BufferStrategy BS;
>
>    public MyClass() {
>               this.createBufferStrategy(2); // Number of buffers
>              BS = this.getBufferStrategy();
>
>    }
>
>    private mainGameLoop() {
>       while (true) {
>          Graphics g = BS.getDrawGraphics();
>          // Do all drawing using g
>          BS.show();
>       }
>    }
>
> }
>
> That's all there is to it, and you don't need to download any API's or
> anything.  Good luck with the Java; I think it's great for games.
>
> Steve
>
>
>
> richard sabbarton wrote:
> > Hi Tom,
> >
> > I downloaded the Java3D API from Sun.  It looks good but I think it
> > was a bit much for what I was looking for.  Anyway, after a little
> > further digging I managed to work out how to do what I was trying to
> > do.
> >
> > The key to getting rid of the flicker was not using the paint()
> > function but instead, using my own.
> >
> > Firstly, I created a new Image and then obtained the Graphics
> > interface for the image.  This gave me my offscreen location to
> > assemble my GUI.  I then use this image and draw it to the Graphics
> > interface of my Applet
> >
> > // Variables and members
> > Image offScreenImage;
> > Graphics offScreenGraphics;
> > Graphics onScreenGraphics;
> >
> > In the init function I run the following:
> >
> >     offScreenImage = createImage( width, height );
> >     offScreenGraphics = offScreenImage.getGraphics();
> >     onScreenGraphics = this.getGraphics();
> >
> >
> > I then setup a timer to keep the screen up-to-date every xxx
> > milliseconds which basically runs the following:
> >
> >     // Draw everything I need to my offscreen Graphics Interface
> >     offScreenGraphics.drawImage( etc. etc. etc.  );
> >     offScreenGraphics.drawImage( etc. etc. etc.  );
> >     offScreenGraphics.drawImage( etc. etc. etc.  );
> >
> >     // Then draw the whole thing to screen with the Image Interface
> >     onScreenGraphics.drawImage(offScreenImage, xxx , yyyy , this );
> >
> > Seems to work quite well for simple graphics and GUI etc.  If I want
> > anything more complex then I will go down the Java3D route but for now
> > this will do.
> >
> > Regards
> >
> > Richard
> >
> >
> >
> > On 04/02/2008, Tom Clifford <tjclifford@xxxxxxxxx> wrote:
> >
> >> Java has it's own Java3D interface, found at:
> >>
> >> http://java.sun.com/products/java-media/3D/
> >>
> >> It allows you to do what is called active rendering,
> >> which is similar to the c/c++ WinMain/WndProc loops,
> >> that uses double-buffering,
> >> or you can create the objects you want and allow
> >> Java3D to do the looping for you, while doing
> >> animation with their Behavior objects.
> >>
> >> There are some good java examples with source
> >> code, at Killer Game Programming with Java, by
> >>  Andrew Davison
> >>  O'Reilly, May 2005
> >>  ISBN: 0-596-00730-2
> >>  http://www.oreilly.com/catalog/killergame/
> >>  Web Site for the book:
> >>  http://fivedots.coe.psu.ac.th/~ad/jg
> >>
> >> code downloads and instructions at:
> >>
> >> http://fivedots.coe.psu.ac.th/~ad/jg/code/
> >>
> >> Tom C.
> >>
> >>
> >> --- richard sabbarton <richard.sabbarton@xxxxxxxxx>
> >> wrote:
> >>
> >>
> >>> Hi Guys,
> >>>
> >>> In C++ on windows I would use animation by creating
> >>> a compatible
> >>> device context in memory with CreateCompatibleDC().
> >>> I would write my
> >>> game and all of its elements to the MemoryDC and
> >>> then use something
> >>> like BitBlt() to push it to my main DC.
> >>>
> >>> I have recently started learning Java and I want to
> >>> perform a similar
> >>> function.  I want to write all of the elements to
> >>> memory and then
> >>> transfer it to the screen every x milliseconds.
> >>> This is to eliminate
> >>> flicker etc.
> >>>
> >>> I have been looking online through tutorials etc.
> >>> and I can't seem to
> >>> find a description of how to do this.  Do I need to
> >>> use java.awt or
> >>> should I use javax.swing.
> >>>
> >>> Any thoughts on how to do this or suggestions on
> >>> greating a game
> >>> display in Java?
> >>>
> >>> Initially this is for display in an Applet in a web
> >>> page.
> >>>
> >>> Regards
> >>>
> >>> Richard
> >>>
> >>> ---------------------
> >>> To unsubscribe go to
> >>> http://gameprogrammer.com/mailinglist.html
> >>>
> >>>
> >>>
> >>>
> >>
> >>      
> >> ____________________________________________________________________________________
> >> Be a better friend, newshound, and
> >> know-it-all with Yahoo! Mobile.  Try it now.  
> >> http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
> >>
> >>
> >> ---------------------
> >> To unsubscribe go to http://gameprogrammer.com/mailinglist.html
> >>
> >>
> >>
> >>
> >
> > ---------------------
> > To unsubscribe go to http://gameprogrammer.com/mailinglist.html
> >
> >
> >
>
> ---------------------
> To unsubscribe go to http://gameprogrammer.com/mailinglist.html
>
>
>

---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html


Other related posts: