/* * see license.txt */ package seventh.client.entities; import com.badlogic.gdx.graphics.g2d.Sprite; import seventh.client.ClientGame; import seventh.client.gfx.AnimatedImage; import seventh.client.gfx.Camera; import seventh.client.gfx.Canvas; import seventh.client.gfx.Light; import seventh.math.Vector2f; import seventh.shared.TimeStep; /** * @author Tony * */ public class ClientRocket extends ClientEntity { private AnimatedImage anim; private Sprite sprite; private Light light; /** * */ public ClientRocket(ClientGame game, Vector2f pos) { super(game, pos); anim = game.getPools().getMissle().create(); sprite = new Sprite(anim.getCurrentImage()); sprite.flip(false, true); //sprite.setScale(0.5f); bounds.width = 8; bounds.height = 10; this.light = game.getLightSystem().newPointLight(new Vector2f(pos)); this.light.setColor(1, 1, 1); } /* (non-Javadoc) * @see seventh.client.ClientEntity#destroy() */ @Override public void destroy() { super.destroy(); light.destroy(); game.getPools().getMissle().free(anim); } /* (non-Javadoc) * @see palisma.client.ClientEntity#update(leola.live.TimeStep) */ @Override public void update(TimeStep timeStep) { super.update(timeStep); anim.update(timeStep); light.setPos(getCenterPos()); } /* (non-Javadoc) * @see leola.live.gfx.Renderable#render(leola.live.gfx.Canvas, leola.live.gfx.Camera, long) */ @Override public void render(Canvas canvas, Camera camera, float alpha) { // TextureRegion image = anim.getCurrentImage(); // int hw = image.getRegionWidth()/2; // int hh = image.getRegionHeight()/2; // Vector2f cameraPos = camera.getRenderPosition(alpha); float x = (pos.x - cameraPos.x) + bounds.width/2; float y = (pos.y - cameraPos.y) + bounds.height/2; double d = Math.toDegrees(orientation) + 90; // canvas.rotate(d, x, y); // canvas.drawImage(anim.getCurrentImage(), x-hw, y-hh, null); // canvas.rotate(-d, x, y); sprite.setRotation( (float)d ); sprite.setPosition(x, y); canvas.drawSprite(sprite); } }