[gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: "richard sabbarton" <richard.sabbarton@xxxxxxxxx>
- To: gameprogrammer@xxxxxxxxxxxxx
- Date: Thu, 7 Feb 2008 13:22:44 +0000
Hi Steve,
I decided to implement your suggestion and looked at JFrame. My
current project is running as an Applet so rather an implement a
JFrame class I have added a Canvas to my applet.
I am using:
myCanvas = new Canvas(this.getGraphicsConfiguration());
myCanvas.setBounds(0, 0, 500, 400);
this.add(myCanvas);
myCanvas.createBufferStrategy(2);
myCanvas.setIgnoreRepaint(true);
BS = myCanvas.getBufferStrategy();
myCanvas.addKeyListener(this);
myCanvas.addMouseListener(this); // My Applet implements
the listeners
myCanvas.addMouseMotionListener(this);
Then, when it comes to drawing I use the same code you suggested.
g = BS.getDrawGraphics();
// All my drawing to Graphics g
BS.show();
Works like a dream...
Richard
On 07/02/2008, richard sabbarton <richard.sabbarton@xxxxxxxxx> wrote:
> 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
- Follow-Ups:
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: Stephen & Kelly
- References:
- [gameprogrammer] A newbie Java Question - GUI/Animation etc...
- From: richard sabbarton
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: Tom Clifford
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: richard sabbarton
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: Stephen & Kelly
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: richard sabbarton
Other related posts:
- » [gameprogrammer] A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- » [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: Stephen & Kelly
- [gameprogrammer] A newbie Java Question - GUI/Animation etc...
- From: richard sabbarton
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: Tom Clifford
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: richard sabbarton
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: Stephen & Kelly
- [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
- From: richard sabbarton