public SlidingLetterRailBase( int sectionLeft, int sectionTop, int sectionWidth, int sectionHeight, GameController gameController) { super(sectionLeft, sectionTop, sectionWidth, sectionHeight, gameController); tileAttrs = MovingLetterTileAttributes.getInstance(gameController); firstLetterLeftMax = sectionLeft + Assets.padding; lastLetterLeftMin = sectionLeft + sectionWidth - Assets.padding - tileAttrs.getTileDimension(); letterTiles = new LetterTile[getTileCount()]; tilesToAdjust = new boolean[getTileCount()]; letterPickupOffset = (int) (LETTER_PICKUP_OFFSET_BASE * gameController.getGraphics().getScale()); label = getLabel(); centerWidth = sectionWidth / 2 + sectionLeft; labelBaseline = sectionTop + sectionHeight - Assets.padding; initializeTiles(); }
private DisplayLetterTileAttributes(GameController gameController) { // remove one padding from width, then base tile dimen on the # of tiles we want to fit across // the screen, then subtract one padding from the width. This should leave us with // MAX_WORD_LENGTH // tiles and left padding and one more right padding to fill the screen. tileDimension = ((gameController.getGraphics().getWidth() - Assets.padding) / Assets.DISPLAY_LETTERS_PER_SCREEN) - Assets.padding; letterTextSize = tileDimension * LETTER_TEXT_SIZE_RATIO; Rect bounds = new Rect(); gameController .getGraphics() .getTextBounds("A", letterTextSize, LETTER_TYPEFACE, LETTER_ALIGNMENT, bounds); letterBaselineFromTileTopOffset = (tileDimension / 2) + (bounds.height() / 2); }