AttractToTarget.java :  » Java-2D » j2dparticles » com » j2dparticles » particlesActions » Java Open Source

Java Open Source » Java 2D » j2dparticles 
j2dparticles » com » j2dparticles » particlesActions » AttractToTarget.java
package com.j2dparticles.particlesActions;

import com.j2dparticles.data.Particle;
import com.j2dparticles.data.Position;
import com.j2dparticles.data.Velocity;
import java.util.List;

/**
 * AttractToTarget
 *
 * @author  Michael Janner Marques
 * @version 0.1, 06/09/2010
 */
public class AttractToTarget implements ParticleAction
{
    Position position = new Position();

    /**
     * AttractToTarget
     *
     * @param position Position
     */
    public AttractToTarget( Position position )
    {
        this.position = position;
    }
    
    /**
     * doAction
     *
     * @param particles List<Particle>
     */
    @Override
    public void doAction( List<Particle> particles )
    {
        for ( Particle p : particles )
        {
            double hypo = Math.hypot( (position.x - p.getCurrentPosition().x),
                                      (position.y - p.getCurrentPosition().y) );

            double dx = (position.x - p.getCurrentPosition().x) / hypo;
            double dy = (position.y - p.getCurrentPosition().y) / hypo;

            p.setCurrentVelocity( new Velocity( p.getCurrentVelocity().dx + dx, p.getCurrentVelocity().dy + dy) );
        }
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.