package gr.sullenart.games.fruitcatcher.view; import gr.sullenart.games.fruitcatcher.images.ImageProvider; import gr.sullenart.games.fruitcatcher.layout.Layout; import gr.sullenart.games.fruitcatcher.layout.LayoutItem; import gr.sullenart.games.fruitcatcher.layout.LayoutRow; import gr.sullenart.games.fruitcatcher.layout.Margin; import gr.sullenart.games.fruitcatcher.layout.SimpleLayoutManager; import gr.sullenart.games.fruitcatcher.models.FruitType; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector3; public class StartGameMessage { private Texture board; private TextureRegion seasonLabel; private TextureRegion startLabel; private int boardX; private int boardY; private LayoutItem startLayoutItem; private SimpleLayoutManager simpleLayoutManager; public StartGameMessage(ImageProvider imageProvider, int level, int challenge, int goal) { this.board = imageProvider.getBoard(); switch(challenge % 4) { case 0: seasonLabel = imageProvider.getSpringLabel(); break; case 1: seasonLabel = imageProvider.getSummerLabel(); break; case 2: seasonLabel = imageProvider.getAutumnLabel(); break; case 3: seasonLabel = imageProvider.getWinterLabel(); break; } TextureRegion goalLabel = imageProvider.getGoalLabel(); startLabel = imageProvider.getStart(); int screenWidth = imageProvider.getScreenWidth(); int screenHeight = imageProvider.getScreenHeight(); boardX = (screenWidth - board.getWidth()) / 2; boardY = (screenHeight - board.getHeight()) / 2; int boardTopPadding = 50; int boardBottomPadding = 50; //int boardLeftPadding = 35; simpleLayoutManager = new SimpleLayoutManager(board.getWidth(), board.getHeight(), boardX, boardY); LayoutRow seasonRow = new LayoutRow(new LayoutItem [] { new LayoutItem(seasonLabel), new LayoutItem(imageProvider.getFruitsLabel()) }, 10); simpleLayoutManager.add(seasonRow, Layout.ALIGN_TOP | Layout.CENTER_HORIZONTAL, new Margin(0, boardTopPadding, 0, 0)); int [] fruitTypesInSeason = FruitType.getFruitsInSeason(challenge); LayoutItem [] seasonFruits = new LayoutItem[fruitTypesInSeason.length]; for(int i=0; i< fruitTypesInSeason.length; i++) { int fruitType = fruitTypesInSeason[i]; seasonFruits[i] = new LayoutItem(imageProvider.getFruitBig(fruitType), 1.0f, 0); } LayoutRow fruitsRow = new LayoutRow(seasonFruits, 20); simpleLayoutManager.addBelow(fruitsRow, seasonRow, Layout.CENTER_HORIZONTAL, new Margin(0, 20, 0, 0)); LayoutRow goalRow = NumberRow.getRow(imageProvider, goalLabel, goal); simpleLayoutManager.addBelow(goalRow, fruitsRow, Layout.ALIGN_LEFT | Layout.CENTER_HORIZONTAL, new Margin(0, 25, 0, 0)); startLayoutItem = new LayoutItem(startLabel); simpleLayoutManager.add(startLayoutItem, Layout.CENTER_HORIZONTAL | Layout.ALIGN_BOTTOM, new Margin(0, 0, 0, boardBottomPadding)); } public void draw(SpriteBatch batch) { batch.draw(board, boardX, boardY); simpleLayoutManager.draw(batch); } public boolean isStartPressed(Vector3 touchPos) { return startLayoutItem.isPressed(touchPos); } }