public void update(double deltaTime) {
		if (texture != null && (numRows > 1 || numColumns > 1) && animationsPerSecond > 0 && !isAnimationStopped) {
			currentAnimationTime += deltaTime;
			if (currentAnimationTime < 0)
				currentAnimationTime = 0;
			if (currentAnimationTime >= animationsPerSecond) {
				// if time passed >= animationsPer second then render the next animation of the sprite
				if (currentColumn >= animationEndColumn && currentRow >= animationEndRow) {
					// if we are at the end of the animation then reset it to the start of
					// the animation loop
					currentColumn = animationStartColumn;
					currentRow = animationStartRow;
				} else {
					// otherwise move one animation frame further
					++currentColumn;
					if (currentColumn >= numColumns) {
						// if we are at the end of the current animation row then
						// move to the next row and start with the first animation there
						currentColumn = 0;
						++currentRow;
						if (currentRow >= numRows) {
							currentRow = 0;
						}
					}
				}

				currentAnimationTime = 0;
			}
		}
	}