diff --git a/src/ei/engine/effects/Fade.java b/src/ei/engine/effects/Fade.java index 3d6ea92..dd9b7e5 100644 --- a/src/ei/engine/effects/Fade.java +++ b/src/ei/engine/effects/Fade.java @@ -49,12 +49,12 @@ public class Fade extends Entity{ */ public void update(){ if(fadeOut){ - if(life > 0)life -= fade; - else life = 0; + if(life > 0) + life -= fade; } else{ - if(life < 1)life += fade; - else life = 1; + if(life < 1) + life += fade; } entity.update(); System.out.println(life); @@ -64,6 +64,20 @@ public class Fade extends Entity{ entity = e; } + /** + * Returns true if the fade is done else false + * @return True if the fade is done else false + */ + public boolean isDone(){ + if(life <= 0){ + return true; + } + else if(life >= 1){ + return true; + } + return false; + } + /** * Set the time of the fade * diff --git a/src/ei/engine/scene/LineBox.java b/src/ei/engine/scene/LineBox.java new file mode 100644 index 0000000..60b4e6a --- /dev/null +++ b/src/ei/engine/scene/LineBox.java @@ -0,0 +1,130 @@ +package ei.engine.scene; + +import java.awt.Rectangle; + +import org.lwjgl.opengl.GL11; + +import ei.engine.texture.Texture; +import ei.engine.texture.TextureLoader; + +public class LineBox extends Entity{ + /** The texture that stores the image for this sprite */ + private Texture texture; + + /** + * Create a new empty sprite + * + * @param window The window in which the sprite will be displayed + * @param ref A reference to the image on which this sprite should be based + */ + public LineBox(String name) { + super(name); + texture = new Texture(); + } + + /** + * Create a new sprite from a specified texture. + * + * @param name The name of the sprite + * @param texture The texture to use + */ + public LineBox(String name, Texture texture) { + super(name); + this.texture = texture; + } + + /** + * Create a new sprite from a specified image. + * + * @param name The name of the sprite + * @param ref A reference to the image on which this sprite should be based + */ + public LineBox(String name, String ref) { + super(name); + this.texture = TextureLoader.getTextureLoaderInstance().getTexture(ref); + } + + /** + * Get the width of this sprite in pixels + * + * @return The width of this sprite in pixels + */ + public int getWidth() { + if(texture == null){ + return 0; + } + return texture.getImageWidth(); + } + + /** + * Get the height of this sprite in pixels + * + * @return The height of this sprite in pixels + */ + public int getHeight() { + if(texture == null){ + return 0; + } + return texture.getImageHeight(); + } + + /** + * Returns the texture + * @return The texture + */ + public Texture getTexture(){ + return texture; + } + + /** + * Draw the sprite + */ + public void render() { + if(texture != null){ + // store the current model matrix + GL11.glPushMatrix(); + + //Sets the location + super.setTranslationGL(); + //the rotation + super.setRotationGL(texture.getImageWidth()/2,texture.getImageHeight()/2); + //Sets the scale of the sprite + super.setScaleGL(); + + // bind to the appropriate texture for this sprite + texture.bindGL(); + + // draw a quad textured to match the sprite + GL11.glBegin(GL11.GL_LINES); + { + //Vertex at the upper left + GL11.glTexCoord2f(0, 0); + GL11.glVertex2f(0, 0); + //Vertex at the down left + GL11.glTexCoord2f(0, texture.getHeight()); + GL11.glVertex2f(0, texture.getImageHeight()); + //Vertex at the upper right + GL11.glTexCoord2f(texture.getWidth(), texture.getHeight()); + GL11.glVertex2f(texture.getImageWidth(),texture.getImageHeight()); + //Vertex at the down right + GL11.glTexCoord2f(texture.getWidth(), 0); + GL11.glVertex2f(texture.getImageWidth(),0); + } + GL11.glEnd(); + + // restore the model view matrix to prevent contamination + GL11.glPopMatrix(); + } + } + + /** + * Returns the bound of this class + */ + public Rectangle getBound() { + return new Rectangle( + (int)getLocation().getX(), + (int)getLocation().getY(), + texture.getImageWidth(), + texture.getImageHeight()); + } +} diff --git a/src/ei/engine/texture/Texture.java b/src/ei/engine/texture/Texture.java index 567470f..04c20fb 100644 --- a/src/ei/engine/texture/Texture.java +++ b/src/ei/engine/texture/Texture.java @@ -84,8 +84,14 @@ public class Texture { * @param gl The GL context to bind to */ public void bindGL() { - GL11.glBindTexture(target, textureID); - GL11.glColor4f(color.getR(),color.getG(),color.getB(),color.getA()); + if(target > 0){ + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glBindTexture(target, textureID); + } + else{ + GL11.glDisable(GL11.GL_TEXTURE_2D); + } + GL11.glColor4f(color.getR(),color.getG(),color.getB(),color.getA()); } /**