public Sprite(Texture texture, int numColumns, int numRows, double animationsPerSecond) {
		this.texture = texture;

		frameWidth.set((int) (texture.getWidth() / numColumns));
		frameHeight.set((int) (texture.getHeight() / numRows));

		width.set((int) frameWidth.get());
		height.set((int) frameHeight.get());

		NumberBinding divideBinding = Bindings.divide(width, frameWidth);
		scaleWidth.bind(divideBinding);

		divideBinding = Bindings.divide(height, frameHeight);
		scaleHeight.bind(divideBinding);

		this.numColumns = numColumns;
		this.numRows = numRows;
		this.animationsPerSecond = 1.0 / animationsPerSecond;

		animationStartRow = animationStartColumn = 0;
		animationEndRow = animationEndColumn = (numColumns * numRows) - 1;
	}