Does anyone know any good lwjgl/java 2d game-engines? I'm mostly interested in rotateable and scalable sprites...
SPGL, courtesy of Cas and Puppygames is very good... just not sure where to find it now. There's a project (http://sourceforge.net/projects/spgl) for it at Sourceforge but no files there.
Bill
Does anyone know where it could be found? Cas?
http://www.sourceforge.net/projects/spgl
No files, just a window onto my working code. Check it out and play with it.
Cas :)
Quotehttp://www.sourceforge.net/projects/spgl
No files, just a window onto my working code. Check it out and play with it.
Nice stuff, Cas. Curious though...I created projects from CVS in Eclipse and all the modules--"Puppygames GUI" etc--depend on another project called "Shaven Puppy Game Library." I thought all those modules *were* the Shaven Puppy Game Library, no?
Any way, thanks for making the code available. It's very helpful...
Oops, asked too quickly. The spgl module is the Shaven Puppy Game Library. Sorry about that.
Doeas anyone have any pointers to examples of using SPGL?
At risk of appearing to not totally appreciate Cas releasing so much of his code* I thought I'd post a list of the compile errors Eclipse is reporting. I started to fix them but quickly ran into cases where I wasn't sure what Cas was intending. For example in TextureRun (com.shavenpuppy.lglib.sprites) there appears to be missing an overloaded version of the init method--void init(GLBaseTexture texture0, Style style, int offset)--because without it IndexedSpriteEngine in SPGLExtra is unhappy. But maybe it's the latter that's wrong?
Anyway here are the rest of the errors I'm seeing:
Type mismatch: cannot convert from GLBaseTexture to GLTexture Puppygames GUI/src/net/puppygames/gui Background.java line 210
The type ResourceConverter must implement the inherited abstract method Resource.Loader.getLoadedListener() spgl-tools/src/com/shavenpuppy/jglib/tools ResourceConverter.java line 55
Same problem for the include(InputStream),is/setOverwrite(), and setLoadedListener(ResourceLoadedListener) methods
The import com.shavenpuppy.jglib.Rectangle cannot be resolved spgl-tools/src/com/shavenpuppy/jglib/tools TexturePacker.java line 18
The constructor Wave(int, int, int, int, int, int, byte[]) is undefined spgl-tools/src/com/shavenpuppy/jglib/tools WaveConverter.java line 123
Not sure if the Spaghetti module is essential but the MousePointer class has a bunch of missing methods for the abstract class it extends:
The type MousePointer.AnimationDelegate must implement the inherited abstract method Animated.addLoop(int) Spaghetti/src/net/puppygames/gui MousePointer.java line 26
Same for the getAnimation(), get/setLoop(), is/setPaused(), reset(), rewind(), and tick() methods.
*- I've been playing the crap out of the fantastically fun "Titan Attacks" and having continuous day dreams of writing something anywhere near as good.
It's a wee bit early at this point, but my JASEL library is/was pretty good.
I had it completely done 2 years ago and was developing a game for it when my laptop got stolen and a decent chunk of the code base with it.
I salvaged what I had out of my SF CVS repository and am rebuilding it for Java 5 and LWJGL 1.0b3.
It has two layers, the lower handles rendering, audio and input, and the upper handling scripting, game entities, animation, etc etc. The upper layer is geared towards shooters (JASEL stands for "Java and Shmups Equals Love" :) ) and by shooters I mean R-Type, Gradius, etc. But the lower layer is good for just about any 2D LWJGL endeavor.
Anyway, like I said, still very early at this point (if my machine was not taken I would have finished that game and debuted JASEL a long time ago), but what the hell, maybe you'll like it in a month or two :)
http://sf.net/projects/jasel
nothing to download, but the complete current state of the library is in CVS.
Quote from: "orpheusx"At risk of appearing to not totally appreciate Cas releasing so much of his code* I thought I'd post a list of the compile errors Eclipse is reporting. I started to fix them but quickly ran into cases where I wasn't sure what Cas was intending. For example in TextureRun (com.shavenpuppy.lglib.sprites) there appears to be missing an overloaded version of the init method--void init(GLBaseTexture texture0, Style style, int offset)--because without it IndexedSpriteEngine in SPGLExtra is unhappy. But maybe it's the latter that's wrong?
Anyway here are the rest of the errors I'm seeing:
Type mismatch: cannot convert from GLBaseTexture to GLTexture Puppygames GUI/src/net/puppygames/gui Background.java line 210
The type ResourceConverter must implement the inherited abstract method Resource.Loader.getLoadedListener() spgl-tools/src/com/shavenpuppy/jglib/tools ResourceConverter.java line 55
Same problem for the include(InputStream),is/setOverwrite(), and setLoadedListener(ResourceLoadedListener) methods
The import com.shavenpuppy.jglib.Rectangle cannot be resolved spgl-tools/src/com/shavenpuppy/jglib/tools TexturePacker.java line 18
The constructor Wave(int, int, int, int, int, int, byte[]) is undefined spgl-tools/src/com/shavenpuppy/jglib/tools WaveConverter.java line 123
Not sure if the Spaghetti module is essential but the MousePointer class has a bunch of missing methods for the abstract class it extends:
The type MousePointer.AnimationDelegate must implement the inherited abstract method Animated.addLoop(int) Spaghetti/src/net/puppygames/gui MousePointer.java line 26
Same for the getAnimation(), get/setLoop(), is/setPaused(), reset(), rewind(), and tick() methods.
*- I've been playing the crap out of the fantastically fun "Titan Attacks" and having continuous day dreams of writing something anywhere near as good.
SPGL / SPGL Extra / Spaghetti does have some compile problems, mostly due to interfaces being extended and not all implementations being updated. However whats there does mostly work, as the things that are broken are either older implementations that have been replaced, or they're 'fringe' functionality thats not being used at the moment. (IndexedSpriteEngine in particular is obsolete, prefer StaticSpriteEngine or ResizingSpriteEngine instead).