package com.lfk.justweengine.anim; import android.renderscript.Float2; import com.lfk.justweengine.engine.GameTimer; public class VelocityAnimation extends BaseAnim { private double p_angle; private double p_multiplier; private double p_velX, p_velY; private int p_lifetime; private GameTimer p_timer; public VelocityAnimation(double angleDegrees, float speedMultiplier, int lifetime) { animating = true; animType = AnimType.SHOOT; p_lifetime = lifetime; p_timer = new GameTimer(); p_angle = angleDegrees; p_multiplier = speedMultiplier; double angleRadians = Math.toRadians(p_angle); //calculate X velocity p_velX = Math.cos(angleRadians) * p_multiplier; //calculate Y velocity p_velY = Math.sin(angleRadians) * p_multiplier; } @Override public Float2 adjustPosition(Float2 original) { Float2 modified = new Float2(original.x, original.y); modified.x += p_velX; modified.y += p_velY; return modified; } @Override public boolean adjustAlive(boolean original) { boolean modified = original; if (p_lifetime > 0) { if (p_timer.stopWatch(p_lifetime)) { modified = false; } } return modified; } }