001 package test; 002 003 import java.awt.Container; 004 005 import javax.media.opengl.GLCanvas; 006 import javax.media.opengl.GLCapabilities; 007 import javax.media.opengl.GLEventListener; 008 import javax.swing.JFrame; 009 010 import physics3d.Angle; 011 import physics3d.GamePhysics; 012 import physics3d.Vect3; 013 014 import rendering.Renderer; 015 016 import components.Ball; 017 import components.GameObject; 018 import components.GameSettings; 019 import components.GameSpace; 020 import components.SquareBumper; 021 import components.TriangleBumper; 022 023 public class WallTest extends JFrame implements Runnable { 024 static final long serialVersionUID = 1495; 025 026 //GameSpace 027 private GameSpace gs; 028 private Ball b; //shall bounce!... maybe 029 030 //rendering stuff 031 private final GLCanvas canvasPanel; 032 private final Renderer myRenderer; 033 034 public WallTest() { 035 super("A Bouncing Ball"); 036 037 this.setDefaultCloseOperation(EXIT_ON_CLOSE); 038 this.setResizable(false); 039 this.setSize(600, 600); 040 041 //GameSpace 042 gs = new GameSpace(new GameSettings()); 043 b = new Ball(Vect3.ZERO, new Vect3(50, 50, 20), "bouncing ball", gs); 044 gs.add(b); 045 //b.setFrozen(true); 046 b.setTLF(new Vect3(10, 5, 5)); // start ball at 2.5 in y direction 047 gs.getSettings().setGravity(new Vect3(0, 60, 0)); //-1 in y direction 048 gs.getSettings().setMu2(0.9); //no drag 049 //TriangleBumper bumper = new TriangleBumper(new Vect3(10, 12, 0), "sq bumper", gs); 050 //SquareBumper bumper = new SquareBumper(new Vect3(10, 12, 0), "sq bumper", gs); 051 TriangleBumper bumper = new TriangleBumper(new Vect3(10, 12, 5), "sq bumper", gs); 052 SquareBumper tlf = new SquareBumper(new Vect3(0, 0, 0), "tlf", gs); 053 SquareBumper tlb = new SquareBumper(new Vect3(0, 0, 9), "tlb", gs); 054 SquareBumper blf = new SquareBumper(new Vect3(0, 19, 0), "blf", gs); 055 SquareBumper blb = new SquareBumper(new Vect3(0, 19, 9), "blb", gs); 056 SquareBumper trf = new SquareBumper(new Vect3(19, 0, 0), "tlf", gs); 057 SquareBumper trb = new SquareBumper(new Vect3(19, 0, 9), "tlf", gs); 058 SquareBumper brf = new SquareBumper(new Vect3(19, 19, 0), "tlf", gs); 059 SquareBumper brb = new SquareBumper(new Vect3(19, 19, 9), "tlf", gs); 060 gs.add(tlf); 061 gs.add(tlb); 062 gs.add(blf); 063 gs.add(blb); 064 gs.add(brb); 065 gs.add(brf); 066 gs.add(trf); 067 gs.add(trb); 068 069 //bumper.setOrientVect(Vect3.Y_HAT); 070 //bumper.setOrientAngle(Angle.DEG_270); 071 //gs.add(bumper); 072 073 //renderer 074 canvasPanel = new GLCanvas(new GLCapabilities()); 075 myRenderer = new Renderer(gs); 076 canvasPanel.addGLEventListener(myRenderer); 077 canvasPanel.setSize(600, 600); 078 079 Container mainPane; 080 mainPane = getContentPane(); 081 mainPane.add(canvasPanel); 082 } 083 084 public void run() { 085 // TODO Auto-generated method stub -- change this to a loop 086 for (int f = 0; f < 40; f++) { 087 canvasPanel.display(); 088 try { 089 Thread.sleep(33); 090 } catch (InterruptedException e) { 091 // TODO Auto-generated catch block 092 e.printStackTrace(); 093 } 094 ////System.out.println("frame +"+f+": p="+b.getPosition()+", v="+b.getVelocity()); 095 } //120 frames 096 for (GameObject g : gs.getObjects()) { 097 //System.out.println("g "+g.getName()+": "+g.getCenter()); 098 } 099 } 100 101 /** 102 * @param args 103 */ 104 public static void main(String[] args) { 105 // TODO Auto-generated method stub 106 WallTest myGUI = new WallTest(); 107 myGUI.setVisible(true); 108 myGUI.run(); 109 } 110 111 }