package gr.sullenart.games.fruitcatcher.view; import gr.sullenart.games.fruitcatcher.images.ImageProvider; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; public class NumberBoard { private TextureRegion[] numbers; private TextureRegion minusSign; public NumberBoard(ImageProvider imageProvider) { numbers = new TextureRegion[10]; for(int i=0;i<10;i++) { numbers[i] = imageProvider.getNumber(i); } minusSign = imageProvider.getMinusSign(); } public void draw(SpriteBatch batch, int right, int top, int number) { if (number > 99 || number <-99) { return; } if (number < -9) { int lsDigit = (-number)%10; int msDigit = (-number)/10; int posX = right - numbers[lsDigit].getRegionWidth(); int posY = top - numbers[lsDigit].getRegionHeight(); batch.draw(numbers[lsDigit], posX, posY); posX -= numbers[msDigit].getRegionWidth()+5; batch.draw(numbers[msDigit], posX, posY); posX -= minusSign.getRegionWidth() + 5; posY += (numbers[msDigit].getRegionHeight() - minusSign.getRegionHeight())/2; batch.draw(minusSign, posX, posY); } else if (number < 0) { int digit = -number; int posX = right - numbers[digit].getRegionWidth(); int posY = top - numbers[digit].getRegionHeight(); batch.draw(numbers[digit], posX, posY); posX -= minusSign.getRegionWidth() + 5; posY += (numbers[digit].getRegionHeight() - minusSign.getRegionHeight())/2; batch.draw(minusSign, posX, posY); } else if (number < 10) { int posX = right - numbers[number].getRegionWidth(); int posY = top - numbers[number].getRegionHeight(); batch.draw(numbers[number], posX, posY); } else { int lsDigit = number%10; int msDigit = number/10; int posX = right - numbers[lsDigit].getRegionWidth(); int posY = top - numbers[lsDigit].getRegionHeight(); batch.draw(numbers[lsDigit], posX, posY); posX -= numbers[msDigit].getRegionWidth()+5; batch.draw(numbers[msDigit], posX, posY); } } }