Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.amcgala.framework.shape.util;
  
  import java.util.Random;
  
Emitter Klasse die ParticleContainer mit den gegebenen Eigenschaften ausgibt. Emitter kannt dis/enabled werden. TODO: Bis jetzt erst 2d moeglich !

Author(s):
Steffen Troester
 
 public class ParticleEmitter extends Shape implements Updatable {
 	private boolean enabled = true;
 	private double widthheight;
 	private double xyz// Mittepunkt
 	private Vector3d direction = new Vector3d(0, 1, 0);
 	private ArrayList<Particleparticles = new ArrayList<Particle>();
 	private RotationZ rectrotation = new RotationZ(. / 2);
 	private boolean visible;
 	// Emitting Settings
 	private int timeIntervalMs = 100;
 	private double particleSpeed = 1.0;
 	// Temp Settings
 	private long timeStamp;
 	private Random r = new Random();
 
 	public void update() {
 		if ( == 0 || !) {
 		} else {
 			// Neuen Partikel anzeigen
 				// rotate direction
 				// scale
 				rot.times(.nextDouble() * );
 				// translate
 				rot.x += ;
 				rot.y += ;
 				// add
 						rot.xrot.y));
 			}
 		}
 		// Partikel updaten und gegebenenfalls manipulieren
 		for (Particle p : ) {
 			p.update();
 				if (pm.fitInRange(p.getX(), p.getY())) {
 					pm.manipulate(p);
 				}
 			}
 		}
 		super.update();
 	}
 
 	public void setTimeStamp() {
 		 = System.nanoTime() / 1000000;
 	}
 
 	public long getTimeStampDifference() {
 		return (System.nanoTime() / 1000000) - ;
 	}

2D Constructor for Particle Emitter

Parameters:
width
x
y
direction
 
 	public ParticleEmitter(double widthdouble xdouble yVector3d direction) {
 		this. = width;
 		this. = x;
 		this. = y;
 		this. = direction.normalize();
 	}
 
 	public void render(Matrix transformationCamera cameraRenderer renderer) {
 		for (Particle p : ) {
 			p.render(transformationcamerarenderer);
 		}
			pm.render(transformationcamerarenderer);
		}
		// display emitterelement 2d
		if (isVisible()) {
			// rotate
			// translate
			rotateScale.x += ;
			rotateScale.y += ;
			// display
			new BresenhamLine(new Vector3d(, 1), rotateScale).render(
					transformationcamerarenderer);
		}
	}
	}
	public boolean isEnabled() {
		return ;
	}
	public void setEnabled(boolean enabled) {
		this. = enabled;
	}
	public void enable() {
		this. = true;
	}
	public void disable() {
		this. = false;
	}
	public double getX() {
		return ;
	}
	public double getY() {
		return ;
	}
	public double getZ() {
		return ;
	}
	public Vector3d getDirection() {
		return ;
	}
	public Vector3d getScale() {
		return scale;
	}
	public double getWidth() {
		return ;
	}
	public double getHeight() {
		return ;
	}
	public void setX(double x) {
		this. = x;
	}
	public void setY(double y) {
		this. = y;
	}
	public void setZ(double z) {
		this. = z;
	}
	public void setDirection(Vector3d direction) {
		this. = direction;
	}
	public void setWidth(double width) {
		this. = width;
	}
	public void setHeight(double height) {
		this. = height;
	}
	public void setTimeIntervalMs(int timeIntervalMs) {
		this. = timeIntervalMs;
	}
	public void setParticleSpeed(double particleSpeed) {
		this. = particleSpeed;
	}
	public boolean isVisible() {
		return ;
	}
	public void setVisible(boolean visible) {
		this. = visible;
	}
New to GrepCode? Check out our FAQ X