public void update(final float theDeltaTime) { _myTargetForce.strength(_cTargetStrength); _myTargetForce.lookAhead(_cLookAhead); _myTargetForce.maxForce(_cMaxForce); _myTime += 1 / 30f * _cNoiseSpeed; _myParticles.update(theDeltaTime); _myForceField.noiseOffset(new CCVector3f(_myTime * 0.5f, 0, 0)); _myForceField.noiseScale(_cNoiseScale); _myForceField.strength(_cNoiseStrength); _myViscousDrag.drag(_cDrag); _myGravity.direction().set(_cGravityX, _cGravityY, _cGravityZ); _myGravity.strength(_cGravityStrength); }
public void setup() { _myArcball = new CCArcball(this); final List<CCForce> myForces = new ArrayList<CCForce>(); myForces.add(_myViscousDrag = new CCViscousDrag(0.3f)); myForces.add(_myForceField); myForces.add(_myTargetForce = new CCGPUMultiTargetForce(700, 700)); myForces.add(_myGravity = new CCGravity(new CCVector3f())); _myParticles = new CCParticles(g, myForces, new ArrayList<CCGPUConstraint>(), 700, 700); _myEmitter = new CCGPUIndexParticleEmitter(_myParticles); _myQuad = new CCQuad3f( new CCVector3f(-250, -250, 0), new CCVector3f(250, -250, 0), new CCVector3f(250, 250, 0), new CCVector3f(-250, 250, 0)); _myTargetSetup = new CCGPUTargetQuadSetup(_myQuad, CCGPUTargetQuadCreationMode.RANDOM); _myTargetForce.targetSetup(_myTargetSetup); for (int i = 0; i < 700 * 700; i++) { _myEmitter.emit(new CCVector3f(0, 0, 0), CCVecMath.random3f(10), 10, true); } addControls("app", "app", this); fixUpdateTime(1 / 30f); _myTileSaver = new CCTileSaver(g); addUpdateListener(_myTileSaver); addPostListener(_myTileSaver); }