public static void main(final String[] args) throws Exception {
System.setProperty("ardor3d.useMultipleContexts", "true");
final Timer timer = new Timer();
final FrameHandler frameWork = new FrameHandler(timer);
final MyExit exit = new MyExit();
final LogicalLayer logicalLayer = new LogicalLayer();
final ExampleScene scene1 = new ExampleScene();
final RotatingCubeGame game1 = new RotatingCubeGame(scene1, exit, logicalLayer, Key.T);
final ExampleScene scene2 = new ExampleScene();
final RotatingCubeGame game2 = new RotatingCubeGame(scene2, exit, logicalLayer, Key.G);
frameWork.addUpdater(game1);
frameWork.addUpdater(game2);
final JFrame frame = new JFrame("AWT Example");
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(final WindowEvent e) {
exit.exit();
}
});
frame.setLayout(new GridLayout(2, 3));
AWTImageLoader.registerLoader();
try {
final SimpleResourceLocator srl = new SimpleResourceLocator(ResourceLocatorTool.getClassPathResource(
JoglNewtAwtExample.class, "com/ardor3d/example/media/"));
ResourceLocatorTool.addResourceLocator(ResourceLocatorTool.TYPE_TEXTURE, srl);
} catch (final URISyntaxException ex) {
ex.printStackTrace();
}
final AWTImageLoader awtImageLoader = new AWTImageLoader();
_cursor1 = createMouseCursor(awtImageLoader, "com/ardor3d/example/media/input/wait_cursor.png");
_cursor2 = createMouseCursor(awtImageLoader, "com/ardor3d/example/media/input/movedata.gif");
addCanvas(frame, scene1, logicalLayer, frameWork);
frame.add(new JLabel(
"<html>"
+ "<table>"
+ "<tr><th align=\"left\" style=\"font-size: 16\">Action</th><th align=\"left\" style=\"font-size: 16\">Command</th></tr>"
+ "<tr><td>WS</td><td>Move camera position forward/back</td></tr>"
+ "<tr><td>AD</td><td>Turn camera left/right</td></tr>"
+ "<tr><td>QE</td><td>Strafe camera left/right</td></tr>"
+ "<tr><td>T</td><td>Toggle cube rotation for scene 1 on press</td></tr>"
+ "<tr><td>G</td><td>Toggle cube rotation for scene 2 on press</td></tr>"
+ "<tr><td>U</td><td>Toggle both cube rotations on release</td></tr>"
+ "<tr><td>0 (zero)</td><td>Reset camera position</td></tr>"
+ "<tr><td>9</td><td>Face camera towards cube without changing position</td></tr>"
+ "<tr><td>ESC</td><td>Quit</td></tr>"
+ "<tr><td>Mouse</td><td>Press left button to rotate camera.</td></tr>" + "</table>"
+ "</html>", SwingConstants.CENTER));
addCanvas(frame, scene1, logicalLayer, frameWork);
frame.add(new JLabel("", SwingConstants.CENTER));
addCanvas(frame, scene2, logicalLayer, frameWork);
frame.add(new JLabel("", SwingConstants.CENTER));
frame.pack();
frame.setVisible(true);
game1.init();
game2.init();
while (!exit.isExit()) {
frameWork.updateFrame();
Thread.yield();
}
frame.dispose();
System.exit(0);