|
||
|
GP Mailing List
ATXGPSIG List
|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [gameprogrammer] Re: A newbie Java Question - GUI/Animation etc...
Hi Tom, Ahhh... OK. So I could potentially use JPanel to create a double buffer for drawing. I guess that would be a lot quicker because I am assuming it would switch pointer of the JPanel rather than, in my example, copying the pixel data from one buffer to another. I will certainly look at it for my next project but I don't believe I will be pushing the boundries with my current task. I am really only doing it to get the hang of Java. (I'm normally a C++ Win32 kinda guy!) Can I ask... What your thoughts on the suitability of Java for Game Development? I think I might just be having trouble shaking some preconceptions I have through other (non-game related) experiences. Regards Richard On 05/02/2008, Tom Clifford <tjclifford@yahoo.com> wrote: > Hello Richard. > > I know that in the Killer Game Programming code the > author used a double-buffering command: > > setDoubleBuffered(true/false); > > which is from JPanel/JComponent, and this is also > supposed to eliminate flicker, I believe. > > Anyway, a custom paint function would also work. > > I'm working on making some techniques work for a > java game. I wish you luck with your efforts. > > Tom. > > > --- richard sabbarton <richard.sabbarton@gmail.com> > 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@yahoo.com> > > 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@gmail.com> > > > 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 > > > > > > > > > > ____________________________________________________________________________________ > Looking for last minute shopping deals? > Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping > > --------------------- > To unsubscribe go to http://gameprogrammer.com/mailinglist.html > > > --------------------- To unsubscribe go to http://gameprogrammer.com/mailinglist.html
|
|