/* * Copyright (c) 2012. HappyDroids LLC, All rights reserved. */ package com.happydroids.droidtowers.graphics; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.math.Vector2; import com.google.common.collect.Iterables; import com.happydroids.droidtowers.TowerAssetManager; import com.happydroids.droidtowers.TowerConsts; import com.happydroids.droidtowers.entities.GameLayer; import com.happydroids.droidtowers.entities.GameObject; import com.happydroids.droidtowers.events.RespondsToWorldSizeChange; import com.happydroids.droidtowers.platform.Display; import java.util.Iterator; public class CityScapeLayer extends GameLayer implements RespondsToWorldSizeChange { private final Iterator<TextureAtlas.AtlasRegion> regions; public CityScapeLayer() { TextureAtlas cityScapeAtlas = TowerAssetManager.textureAtlas("backgrounds/cityscape.txt"); for (Texture texture : cityScapeAtlas.getTextures()) { texture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); } regions = Iterables.cycle(cityScapeAtlas.getRegions()).iterator(); } @Override public void updateWorldSize(Vector2 worldSize) { float worldWidth = worldSize.x + (Display.getBiggestScreenDimension() * 4); float nextX = width() - Display.getBiggestScreenDimension() - (5f * gameObjects.size); while (width() - 64 < worldWidth) { GameObject sprite = new GameObject(regions.next()); sprite.setColor(Color.WHITE); sprite.setX(nextX); sprite.setY(TowerConsts.GROUND_HEIGHT - 5f); addChild(sprite); nextX += sprite.getWidth() - 5f; } } }