Java Reference
In-Depth Information
velocityDisplay.setText (milliToStr (velocity));
fuelDisplay.setText (milliToStr (fuel < 0 ? 0 : fuel));
thrust = fuel <= 0 ? 0 : thrustSlider.getValue();
externalView.check();
}
}
class Simulation extends Thread {
long time = System.currentTimeMillis();
public void run() { // 0..100
do {
long dt = System.currentTimeMillis() - time;
velocity += ((GRAVITY - (ACCELERATION * thrust)
/ 100) * dt) / 1000;
height -= (velocity * dt) / 1000;
time += dt;
fuel -= (thrust * dt) / 100;
try {
EventQueue.invokeAndWait (screenManager);
}
catch (Exception e) {
throw new RuntimeException (e.toString());
}
}
while (height > 0);
}
}
public PdaLander2() {
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
boolean vertical = d.height > d.width;
Panel intermediate = new Panel (new BorderLayout());
Panel controlPanel = new Panel (new GridLayout (0, vertical ?
1 : 2));
int align = vertical ? Label.LEFT : Label.RIGHT;
controlPanel.add(new Label ("Height:", align));
controlPanel.add(heightDisplay);
controlPanel.add(new Label ("Velocity:", align));
controlPanel.add(velocityDisplay);
controlPanel.add(new Label ("Fuel:", align));
controlPanel.add(fuelDisplay);
controlPanel.add(new Label ("Thrust:", align));
controlPanel.add(thrustSlider);
intermediate.add(controlPanel, BorderLayout.NORTH);
frame.add(intermediate, BorderLayout.WEST);
frame.add(externalView, BorderLayout.CENTER);
frame.addWindowListener(new WindowAdapter() {
Search WWH ::




Custom Search