package com.game.framework.display; import com.badlogic.gdx.graphics.Camera; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Group; public class DisplayCamera extends Group { private Actor target; private Camera camera; private float leftBoundary; private float rightBoundary; private float topBoundary; private float bottomBoundary; public DisplayCamera(Camera camera) { this.camera = camera; // TODO Auto-generated constructor stub } public void setTarget(Actor target) { this.target = target; } public Actor getTarget() { return target; } @Override public void act(float delta) { // TODO Auto-generated method stub if(target!=null) { if(target.getX() > leftBoundary && target.getX() < rightBoundary) { this.camera.position.x = target.getX(); } if(target.getY() > bottomBoundary && target.getY() < topBoundary) { this.camera.position.y = target.getY(); } } setX(camera.position.x - camera.viewportWidth/2); setY(camera.position.y - camera.viewportHeight/2); super.act(delta); } public void setBoundaries(Actor boundaries) { leftBoundary = 0 + camera.viewportWidth/2; rightBoundary = boundaries.getWidth() - camera.viewportWidth/2; topBoundary = boundaries.getHeight() - camera.viewportHeight/2; bottomBoundary = 0 + camera.viewportHeight/2; } @Override public float getWidth() { // TODO Auto-generated method stub return camera.viewportWidth; } @Override public float getHeight() { // TODO Auto-generated method stub return camera.viewportHeight; } }