@Override
	public void render() {
		getColor().apply();

		float sx = (this.frame % this.columns) * this.frameWidth;
		float sy = (this.frame / this.columns) * this.frameHeight;
		
	    GL11.glBegin(GL11.GL_QUADS);
	    GL11.glTexCoord2f(sx, sy + this.frameHeight);
	    GL11.glVertex2d(-this.halfWidth * getScale(), -this.halfHeight * getScale());
	    
	    GL11.glTexCoord2f(sx + this.frameWidth, sy + this.frameHeight);
        GL11.glVertex2d(this.halfWidth * getScale(), -this.halfHeight * getScale());
        
	    GL11.glTexCoord2f(sx + this.frameWidth, sy);
        GL11.glVertex2d(this.halfWidth * getScale(), this.halfHeight * getScale());
        
	    GL11.glTexCoord2f(sx, sy);
		GL11.glVertex2d(-this.halfWidth * getScale(), this.halfHeight * getScale());
	    GL11.glEnd();
	    
	    if (!this.autoPlay) {
	    	return;
	    }
	    this.elapsedTime += this.timer.getDeltaTime();
	    if (this.elapsedTime >= this.displayTime) {
	    	this.elapsedTime = 0.0;
	    	nextFrame();
	    }
	}