001 package test; 002 003 import java.awt.Container; 004 import java.util.HashMap; 005 import java.util.Map; 006 007 import javax.media.opengl.GLCanvas; 008 import javax.media.opengl.GLCapabilities; 009 import javax.swing.JFrame; 010 011 import physics3d.Angle; 012 import physics3d.Vect3; 013 import rendering.Renderer; 014 015 import components.Absorber; 016 import components.GameObject; 017 import components.GameSettings; 018 import components.GameSpace; 019 020 public class RotatingGizmo extends JFrame implements Runnable { 021 static final long serialVersionUID = 1495; 022 023 //GameSpace 024 private GameSpace gs; 025 private GameObject gizmo; 026 027 //rendering stuff 028 private final GLCanvas canvasPanel; 029 private final Renderer myRenderer; 030 031 public RotatingGizmo() { 032 super("A Bouncing Ball"); 033 034 this.setDefaultCloseOperation(EXIT_ON_CLOSE); 035 this.setResizable(false); 036 this.setSize(600, 600); 037 038 //GameSpace 039 gs = new GameSpace(new GameSettings()); 040 gs.getSettings().setGravity(new Vect3(0, 60, 0)); //-1 in y direction 041 gs.getSettings().setMu2(0.9); //no drag 042 //TriangleBumper bumper = new TriangleBumper(new Vect3(10, 12, 0), "sq bumper", gs); 043 //SquareBumper bumper = new SquareBumper(new Vect3(10, 12, 0), "sq bumper", gs); 044 //gizmo = new TriangleBumper(new Vect3(10, 12, 0), "tri bumper", gs); 045 Map<String, String> props = new HashMap<String, String>(); 046 props.put("x", "10"); 047 props.put("y", "17"); 048 props.put("z", "5"); 049 props.put("width", "3"); 050 props.put("depth", "5"); 051 props.put("name", "my absorber"); 052 gizmo = new Absorber(props, gs); 053 gs.add(gizmo); 054 055 //renderer 056 canvasPanel = new GLCanvas(new GLCapabilities()); 057 myRenderer = new Renderer(gs); 058 canvasPanel.addGLEventListener(myRenderer); 059 canvasPanel.setSize(600, 600); 060 061 Container mainPane; 062 mainPane = getContentPane(); 063 mainPane.add(canvasPanel); 064 } 065 066 public void run() { 067 // TODO Auto-generated method stub -- change this to a loop 068 for (int f = 0; f < 120; f++) { 069 canvasPanel.display(); 070 try { 071 Thread.sleep(66); 072 } catch (InterruptedException e) { 073 // TODO Auto-generated catch block 074 e.printStackTrace(); 075 } 076 //rotate gizmo 077 gizmo.setOrientVect(Vect3.Y_HAT); 078 gizmo.setOrientAngle(gizmo.getOrientAngle().plus(new Angle(.78))); 079 080 } //120 frames 081 } 082 083 /** 084 * @param args 085 */ 086 public static void main(String[] args) { 087 // TODO Auto-generated method stub 088 RotatingGizmo myGUI = new RotatingGizmo(); 089 myGUI.setVisible(true); 090 myGUI.run(); 091 } 092 093 }