2 Fenster bei JPCT

Status
Nicht offen für weitere Antworten.

Titanpharao

Bekanntes Mitglied
Hallo, habe mir mal den Beispielcode herrangezogen. Nur wenn ich
Code:
buffer.enableRenderer(IRenderer.RENDERER_OPENGL);

benutze habe ich auf einmal 2 Fenster? Eins OpenGL gerendet das andere Software...ist das normal?

Code:
package test;

import com.threed.jpct.*; 
import javax.swing.JFrame;

public class Test1 extends JFrame{ 
    
   private World world; 
   private Camera camera; 
   private FrameBuffer buffer; 
   boolean running = true; 
   Object3D box; 
   TextureManager texman; 

   public static void main(String[] args){ 
      new Test1(); 
   } 
    
   public Test1(){ 

      //Engine konfigurieren 
      Config.maxPolysVisible = 10000;  //max. sichtbare Polygone 
      
     world  = new World();  // Hauptklasse instanziieren 
     world.setAmbientLight(0,255,0); //grünes Umgebungslicht 
      
     texman = TextureManager.getInstance(); 
    Texture spot=new Texture("textures/envmap.jpg"); 
    TextureManager.getInstance().addTexture("car", spot); 
    
    //Box erzeugen 
     box = Primitives.getBox(8f,1f); 
     box.setTexture("car"); 
     box.setSpecularLighting(true); 
     //   Textur als Umgebungs-Map. Noch keine so rechte Ahnung was gemeint ist, sieht 
     box.setEnvmapped(Object3D.ENVMAP_ENABLED); 
     box.build();      
     world.addObject(box); //Box in die Welt packen 
      
    camera = world.getCamera(); //Kamera abholen 
    camera.setPosition(50,-50,-5); //Position verändern 
    camera.lookAt(box.getTransformedCenter()); //auf die Box gucken 

     //Frame erzeugen 
    setTitle("jPCT "+Config.getVersion()); 
    pack(); 
    setSize(800,600); 
    setResizable(false); 
    setVisible(true);
    

    loop();    
      
   } 
    
   private void loop(){ 
        
      World.setDefaultThread(Thread.currentThread());  //JPCT-Funktionen werde aus diese Thread aufgerufen 
      buffer = new FrameBuffer(800,600,FrameBuffer.SAMPLINGMODE_NORMAL); //FrameBuffer zum Zeichnen 
      buffer.enableRenderer(IRenderer.RENDERER_OPENGL); //Renderer zuweisen 
      buffer.optimizeBufferAccess();//schnellst Buffer-Zugriff ermitteln 
        
      while(running){        
       buffer.clear(); //no comment 
       world.renderScene(buffer); 
       //world.drawWireframe(buffer, Color.white);// um im Wireframe zu zeichnen 
       world.draw(buffer); //zeichne in den Buffer 
       buffer.update(); //gewährleistet, daß alle Änderungen übernommen werden. Update des Output-Buffers 
       buffer.display(getGraphics()); 
         Thread.yield(); 
         try { Thread.sleep(20);}
         catch (InterruptedException e) { System.out.println(e);}
      }
      
   } 
    
}
 

EgonOlsen

Bekanntes Mitglied
Ja, es geht beides gleichzeitig...wobei das meistens nicht sehr sinnvoll ist. Du müsstest den Software-Renderer explizit disablen. Dann brauchst du aber auch den JFrame nicht mehr, weil der OpenGL-Renderer sein eigenes, natives Fenster mitbringt.
 

Titanpharao

Bekanntes Mitglied
Achso dachte ich mir fast. Gut werde mal nur das OGL fenster betrachten sieht irgendwie schöner aus ;-)

*neuer anhänger*

Macht deine 3D Engine auch Collsionserkennung? Also das ich nicht durch Wände laufen kann, oder muss ich das selber machen ... werde mir mal die Codebeispiele ansehen ...
 

EgonOlsen

Bekanntes Mitglied
Titanpharao hat gesagt.:
Macht deine 3D Engine auch Collsionserkennung? Also das ich nicht durch Wände laufen kann, oder muss ich das selber machen ... werde mir mal die Codebeispiele ansehen ...
Macht sie auch. Es gibt drei verschiedene Varianten. Im fps-Beispiel findest du ein bisschen was oder halt im Forum (www.jpct.net/forum2).
 

Titanpharao

Bekanntes Mitglied
Wie kann ich eine Oberfläche erstellen quasi ein Menu?
Wie komme ich an das OGL Fenster ran, um dort KeyListener etc unterzubringen? Stelle die Fragen auch gern im JPCT Forum, nur warst dort lange nicht mehr aktiv :?
 

EgonOlsen

Bekanntes Mitglied
Ich bin da jeden Tag mehrmals!? Es gab nur nicht sooo viele Fragen in den letzten Wochen...Sommerloch halt.

Was die GUI angeht: Wenn du ein natives OpenGL-Fenster nutzt, gibt es keine Key- und MouseListener und auch keine GUI-Komponenten, weil das Fenster mit Swing/AWT nichts zu tun hat.
Maus und Tastaturabfragen laufen dann über die entsprechenden LWJGL-Klassen ab. Fürs Keyboard bringt jPCT einen Wrapper mit, für die Maus findest du ähnliches im Forum.
Du kannst auch alternativ einen AWTGLRenderer aktivieren, der eine AWTCanvas zum Rendern nutzt. Damit gehen dann Maus und Tastatur wie bei Swing/AWT. Swing-Komponenten gehen mit Einschränkungen auch. Allerdings ist diese Variante des Hardware-Renderers nicht ganz so kompatibel wie die native.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Java Andere Fenster in Borderless-Mode setzen Spiele- und Multimedia-Programmierung 16
N Warum ist das Fenster nicht schwarz? Spiele- und Multimedia-Programmierung 26
S Draw Package - mehere Fenster will aber nur eins Spiele- und Multimedia-Programmierung 1
S 2D Spiel im Vollbild langsamer als im Fenster Spiele- und Multimedia-Programmierung 11
B Spiele programmieren für ein Fenster? Spiele- und Multimedia-Programmierung 14
T Mausklick auf Fenster in Verbindung zu RadioButtons Spiele- und Multimedia-Programmierung 9
D [JAVA3D] Es werden 2 Fenster erzeugt und auf dem falschen gezeichnet Spiele- und Multimedia-Programmierung 3
E JOGL nur weißes Fenster Spiele- und Multimedia-Programmierung 2
J LWJGL - schwarzes Fenster Spiele- und Multimedia-Programmierung 5
H Radius in neuem Fenster eingeben Spiele- und Multimedia-Programmierung 9
Kr0e JOGL & Anpassung ins Fenster Spiele- und Multimedia-Programmierung 2
E JPCT background image Spiele- und Multimedia-Programmierung 3
E JPCT textur problem Spiele- und Multimedia-Programmierung 8
Quaxli Erster Versuch mit JPCT Spiele- und Multimedia-Programmierung 5
E Kleines Multiplayer-Beispiel für jPCT Spiele- und Multimedia-Programmierung 20
X JPCT 3d-Spiele Programmierung Tutorial Spiele- und Multimedia-Programmierung 40
I jPCT rendert nur einen schwarzen Bildschirm Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen


Oben