Here's the source (exluding imports):
Main class,
public class ParticleSystem {
int lastFrame, width=800, height=600;
boolean simulating;
int ticker;
Vertex[] vertex = new Vertex[100];
int temp;
public void Start(){
try {
Display.setDisplayMode(new DisplayMode(width,height));
Display.create();
} catch (LWJGLException e) {
e.printStackTrace();
System.exit(0);
}
initGL();
getDelta();
boolean Close = Display.isCloseRequested();
while(!Close){
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
int delta=getDelta();
ticker+=delta;
if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE) || Display.isCloseRequested())
Close = true;
if(Keyboard.isKeyDown(Keyboard.KEY_RETURN))
simulating = true;
if(temp <100 && Mouse.isButtonDown(0) && ticker>=100){
vertex[temp]= new Vertex(Mouse.getX(), height-Mouse.getY());
temp++;
ticker=0;
}
if(simulating)
logic(delta);
renderer();
Display.update();
}
}
public void logic(int delta){
for(int i=0;i<temp;i++){
vertex[i].updateVerlet(delta);
}
}
public void renderer(){
for(int i=0;i<100;i++){
if(vertex[i]!=null)
vertex[i].draw();
}
}
public int getDelta(){
long time = getTime();
int delta = (int) (time - lastFrame);
lastFrame = (int) time;
return delta;
}
public long getTime(){
return (Sys.getTime()*1000)/Sys.getTimerResolution();
}
public void initGL(){
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, width, height, 0, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
}
public static void main(String args[]){
ParticleSystem ps = new ParticleSystem();
ps.Start();
}
}
Vertex class,
public class Vertex {
protected Point2D.Double pos;
protected Point2D.Double oldpos;
protected Point2D.Double acceleration;
protected Point2D.Double temp;
public Vertex(double x, double y){
pos = new Point2D.Double(x,y);
oldpos = new Point2D.Double(x,y);
}
public void updateVerlet(int delta){
double t=((double)delta)/1000;
temp.x=pos.x;
temp.y=pos.y;
pos.x += (pos.x - oldpos.x) + (acceleration.x*t*t);
pos.y += (pos.y - oldpos.y) + (acceleration.y*t*t);
oldpos.x=temp.x;
oldpos.y=temp.y;
}
public void draw(){
GL11.glColor3f(1f, 0f, 0f);
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2d(pos.x-1, pos.y-1);
GL11.glVertex2d(pos.x-1, pos.y+1);
GL11.glVertex2d(pos.x+1, pos.y+1);
GL11.glVertex2d(pos.x+1, pos.y-1);
GL11.glEnd();
}
}
Thanks in advance.






