package com.plattysoft.leonids.initializers; import java.util.Random; import com.plattysoft.leonids.Particle; public class AccelerationInitializer implements ParticleInitializer { private float mMinValue; private float mMaxValue; private int mMinAngle; private int mMaxAngle; public AccelerationInitializer(float minAcceleration, float maxAcceleration, int minAngle, int maxAngle) { mMinValue = minAcceleration; mMaxValue = maxAcceleration; mMinAngle = minAngle; mMaxAngle = maxAngle; } @Override public void initParticle(Particle p, Random r) { float angle = mMinAngle; if (mMaxAngle != mMinAngle) { angle = r.nextInt(mMaxAngle - mMinAngle) + mMinAngle; } float angleInRads = (float) (angle*Math.PI/180f); float value = r.nextFloat()*(mMaxValue-mMinValue)+mMinValue; p.mAccelerationX = (float) (value * Math.cos(angleInRads)); p.mAccelerationY = (float) (value * Math.sin(angleInRads)); } }