# 3D Würfel mit Jogl



## duces (19. Jun 2007)

Hallo

Ich versuche gerade in Java einen Würfel darzustellen. Hab es schon geschafft, das er 4 Kanten besitzt. Leider bekomme ich keinen Boden und Deckel drauf. Somit kann man also noch schön in der Würfel kucken.

Desweiteren wird nur eine Textur angezeigt, die aber auch noch verkehrt herum ist, wenn ich das komplette Spielfeld drehe.

Hier ist mal der Code dazu, wo ich gerade mit dem Würfel beschäftigt bin. Wäre echt super, wenn mir wer mal kurz helfen kann dabei.


```
private void drawWuerfel(GL gl) 
  {
	  float a = 1.0f; // halbe Spielfeldbreite
	  float y=2.5f;

	  gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE);
	  
	  TextureCoords coords_1 =  _texWuerfelEins.getImageTexCoords();
	  TextureCoords coords_2 =  _texWuerfelZwei.getImageTexCoords();
	  TextureCoords coords_3 =  _texWuerfelDrei.getImageTexCoords();
	  TextureCoords coords_4 =  _texWuerfelVier.getImageTexCoords();
	  TextureCoords coords_5 =  _texWuerfelFuenf.getImageTexCoords();
	  TextureCoords coords_6 =  _texWuerfelSechs.getImageTexCoords();
	  
	  _texWuerfelEins.enable();
	  _texWuerfelEins.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS); // Fange an Quadrate zu zeichnen
	  gl.glTexCoord2f(coords_1.left(), coords_1.bottom());
	  gl.glVertex3f(-0.5f,	y, -0.5f); // links und eine Einheit nach oben (oben links)
	  gl.glTexCoord2f(coords_1.right(), coords_1.bottom());
	  gl.glVertex3f(0.5f, 	y, -0.5f); // rechts und eine Einheit runter (unten rechts)
	  gl.glTexCoord2f(coords_1.right(), coords_1.top());
	  gl.glVertex3f(0.5f, 	y+1, -0.5f); // links und eine Einheit nach unten (unten links)
	  gl.glTexCoord2f(coords_1.left(), coords_1.top());
	  gl.glVertex3f(-0.5f, 	y+1, -0.5f); // rechts und eine Einheit nach oben (oben rechts)
	  gl.glEnd(); // Fertig mit Quadraten zeichnen
	  _texWuerfelEins.disable();
	  
	  _texWuerfelZwei.enable();
	  _texWuerfelZwei.bind();
	  gl.glBegin(GL.GL_QUADS); // Fange an Quadrate zu zeichnen
	  gl.glTexCoord2f(coords_2.left(), coords_2.top());
	  gl.glVertex3f(-0.5f,	y, 0.5f);
	  gl.glTexCoord2f(coords_2.left(), coords_2.top());
	  gl.glVertex3f(0.5f, 	y, 0.5f);
	  gl.glTexCoord2f(coords_2.left(), coords_2.top());
	  gl.glVertex3f(0.5f, 	y+1, 0.5f);
	  gl.glTexCoord2f(coords_2.left(), coords_2.top());
	  gl.glVertex3f(-0.5f, 	y+1, 0.5f);
	  gl.glEnd(); // Fertig mit Quadraten zeichnen
	  _texWuerfelZwei.disable();
	  
	  _texWuerfelDrei.enable();
	  _texWuerfelDrei.bind();
	  gl.glBegin(GL.GL_QUADS); // Fange an Quadrate zu zeichnen
	  gl.glTexCoord2f(coords_3.left(), coords_3.top());
	  gl.glVertex3f(0.5f,	y, 0.5f);
	  gl.glTexCoord2f(coords_3.left(), coords_3.top());
	  gl.glVertex3f(0.5f, 	y, -0.5f);
	  gl.glTexCoord2f(coords_3.left(), coords_3.top());
	  gl.glVertex3f(0.5f, 	y+1, -0.5f);
	  gl.glTexCoord2f(coords_3.left(), coords_3.top());
	  gl.glVertex3f(0.5f, 	y+1, 0.5f);
	  gl.glEnd(); // Fertig mit Quadraten zeichnen
	  _texWuerfelDrei.disable();
	  
	  _texWuerfelVier.enable();
	  _texWuerfelVier.bind();
	  gl.glBegin(GL.GL_QUADS); // Fange an Quadrate zu zeichnen
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f,	y, 0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y, -0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y+1, -0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y+1, 0.5f);
	  gl.glEnd(); // Fertig mit Quadraten zeichnen
	  _texWuerfelVier.disable();	  

	  _texWuerfelFuenf.enable();
	  _texWuerfelFuenf.bind();
	  gl.glBegin(GL.GL_QUADS); // Fange an Quadrate zu zeichnen
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f,	y, 0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y, -0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y+1, -0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y+1, 0.5f);
	  gl.glEnd(); // Fertig mit Quadraten zeichnen
	  _texWuerfelFuenf.disable();
	  
	  _texWuerfelSechs.enable();
	  _texWuerfelSechs.bind();
	  gl.glBegin(GL.GL_QUADS); // Fange an Quadrate zu zeichnen
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f,	y, 0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y, -0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y+1, -0.5f);
	  gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  gl.glVertex3f(-0.5f, 	y+1, 0.5f);
	  gl.glEnd(); // Fertig mit Quadraten zeichnen
	  _texWuerfelSechs.disable();
  }
```


----------



## Evil-Devil (19. Jun 2007)

Da, ein Würfel aus meinem LWJGL Tut
http://evil-devil.com/index.php?menu=tutorials&cat=java&content=java_lwjgl

Und der Würfelcode.

```
// Der Würfel aller Würfel ^__^'
GL11.glBegin(GL11.GL_QUADS);
     // Front Side
     GL11.glVertex3f(-1.0f,-1.0f,1.0f);
     GL11.glVertex3f(1.0f,-1.0f,1.0f);
     GL11.glVertex3f(1.0f,1.0f,1.0f);
     GL11.glVertex3f(-1.0f,1.0f,1.0f);
     // Back Side
     GL11.glVertex3f(1.0f,-1.0f,-1.0f);
     GL11.glVertex3f(-1.0f,-1.0f,-1.0f);
     GL11.glVertex3f(-1.0f,1.0f,-1.0f);
     GL11.glVertex3f(1.0f,1.0f,-1.0f);
     // Left Side
     GL11.glVertex3f(-1.0f,-1.0f,-1.0f);
     GL11.glVertex3f(-1.0f,-1.0f,1.0f);
     GL11.glVertex3f(-1.0f,1.0f,1.0f);
     GL11.glVertex3f(-1.0f,1.0f,-1.0f);
     // Right Side
     GL11.glVertex3f(1.0f,-1.0f,1.0f);
     GL11.glVertex3f(1.0f,-1.0f,-1.0f);
     GL11.glVertex3f(1.0f,1.0f,-1.0f);
     GL11.glVertex3f(1.0f,1.0f,1.0f);
     // Top Side
     GL11.glVertex3f(-1.0f,1.0f,1.0f);
     GL11.glVertex3f(1.0f,1.0f,1.0f);
     GL11.glVertex3f(1.0f,1.0f,-1.0f);
     GL11.glVertex3f(-1.0f,1.0f,-1.0f);
     // Bottom Side
     GL11.glVertex3f(1.0f,-1.0f,-1.0f);
     GL11.glVertex3f(-1.0f,-1.0f,-1.0f);
     GL11.glVertex3f(-1.0f,-1.0f,1.0f);
     GL11.glVertex3f(1.0f,-1.0f,1.0f);
GL11.glEnd();
```


----------



## duces (19. Jun 2007)

Danke für die Würfel Info, aber ich hab das Ding doch noch allein hin bekommen.  

Jetzt besteht für mich aber das Problem, das ich die Texturen (also png Dateien) nicht drauf bekomme.
So sieht jetzt der Würfel-Code bei mir aus.


```
private void drawWuerfel(GL gl) 
  {
	  float x=0.5f;
	  float y=0.5f;
	  float z=0.5f;

	  //gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE);
	  
	  TextureCoords coords_1 =  _texWuerfelEins.getImageTexCoords();
	  TextureCoords coords_2 =  _texWuerfelZwei.getImageTexCoords();
	  TextureCoords coords_3 =  _texWuerfelDrei.getImageTexCoords();
	  TextureCoords coords_4 =  _texWuerfelVier.getImageTexCoords();
	  TextureCoords coords_5 =  _texWuerfelFuenf.getImageTexCoords();
	  TextureCoords coords_6 =  _texWuerfelSechs.getImageTexCoords();
	  
	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	  _texWuerfelEins.enable();
	  _texWuerfelEins.bind(); // bindet die Textur ein..
	  gl.glTexCoord2f(coords_1.left(), coords_1.bottom());
	  gl.glVertex3f( x, y, z);
	  gl.glTexCoord2f(coords_1.right(), coords_1.bottom());
	  gl.glVertex3f(-x, y,-z);
	  gl.glTexCoord2f(coords_1.right(), coords_1.top());
	  gl.glVertex3f(-x, y, z);
	  gl.glTexCoord2f(coords_1.left(), coords_1.top());
	  gl.glVertex3f( x, y, z);
	  gl.glEnd();
	  _texWuerfelEins.disable();

	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	  //_texWuerfelZwei.enable();
	  //_texWuerfelZwei.bind(); // bindet die Textur ein..
	  gl.glVertex3f( x,-y, z);
	  gl.glVertex3f(-x,-y, z);
	  gl.glVertex3f(-x,-y,-z);
	  gl.glVertex3f( x,-y,-z);
	  gl.glEnd();
	  //_texWuerfelZwei.disable();
	  
	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	  //_texWuerfelDrei.enable();
	  //_texWuerfelDrei.bind(); // bindet die Textur ein..
	  gl.glVertex3f( x, y, z);
	  gl.glVertex3f(-x, y, z);
	  gl.glVertex3f(-x,-y, z);
	  gl.glVertex3f( x,-y, z);
	  gl.glEnd();
	 // _texWuerfelDrei.disable();
	  
	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	  //_texWuerfelVier.enable();
	  //_texWuerfelVier.bind(); // bindet die Textur ein..
	  gl.glVertex3f( x,-y,-z);
	  gl.glVertex3f(-x,-y,-z);
	  gl.glVertex3f(-x, y,-z);
	  gl.glVertex3f( x, y,-z);
	  gl.glEnd();
	  //_texWuerfelVier.disable();

	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	  //_texWuerfelFuenf.enable();
	  //_texWuerfelFuenf.bind(); // bindet die Textur ein..
	  gl.glVertex3f(-x, y, z);
	  gl.glVertex3f(-x, y,-z);
	  gl.glVertex3f(-x,-y,-z);
	  gl.glVertex3f(-x,-y, z);
	  gl.glEnd();
	  //_texWuerfelFuenf.disable();

	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	  //_texWuerfelSechs.enable();
	  //_texWuerfelSechs.bind(); // bindet die Textur ein..
	  gl.glVertex3f( x, y,-z);
	  gl.glVertex3f( x, y, z);
	  gl.glVertex3f( x,-y, z);
	  gl.glVertex3f( x,-y,-z);
	  gl.glEnd();
	  //_texWuerfelSechs.disable();

	  gl.glPopMatrix();
  }
```


----------



## Evil-Devil (19. Jun 2007)

Das mit den Texturen sieht in deinem ersten Post schon sehr gut aus, auch wenn ich nicht wirklich weiß wozu die getImageTexCoords() Funktion gut ist.

Soviel Dynamik das du mehr als 0/0, 0/1, 1/1 und 1/0 an den Koordinaten für den Würfel benötigst seh ich nicht 

Du musst halt bei jeder Fläche die jeweilige Texture binden und dann wie auch schon oben mittels glTexCoord2f die Koordinate der Textur für den zu nutzenen Vertex angeben.


----------



## duces (19. Jun 2007)

Ich dank dir für die Info. Hab es dank der Seite dann auch hinbekommen und die jeweiligen Texturen hab ich auch drauf.
Jedoch lässt sich der Würfel jetzt nicht drehen.  :cry: 

Hast du da vielleicht auch nen Tipp.

Achso, ich vergewaltige die Java 1.6.0_01 und die aktuellste jogl version 1.1.0.

So sieht der Code jedenfalls jetzt aus:

```
private void drawWuerfel(GL gl) 
  {
	  float x=0.5f;
	  float y=0.5f;
	  float z=0.5f;
	  float rotX = 0.0f; // für rotation um die X Achse
	  float rotY = 0.0f; // für rotation um die X Achse
	  float rotZ = 0.0f; // für rotation um die X Achse
	  float scale = 1.0f;
	  boolean scaleUp = true; // skalieren wir unser objekt größer oder kleiner?

	  gl.glPushMatrix();
	  //gl.glLoadIdentity();
	  //gl.glTranslatef(0.0f,0.0f,-5.0f);      
	  gl.glRotatef(rotX,1.0f,0.0f,0.0f);
	  gl.glRotatef(rotY,0.0f,1.0f,0.0f);
	  gl.glRotatef(rotZ,0.0f,0.0f,1.0f);        
	  gl.glScalef(scale,scale,scale);      

	  //gl.glTexEnvi(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE);
	  
	  TextureCoords coords_1 =  _texWuerfelEins.getImageTexCoords();
	  TextureCoords coords_2 =  _texWuerfelZwei.getImageTexCoords();
	  TextureCoords coords_3 =  _texWuerfelDrei.getImageTexCoords();
	  TextureCoords coords_4 =  _texWuerfelVier.getImageTexCoords();
	  TextureCoords coords_5 =  _texWuerfelFuenf.getImageTexCoords();
	  TextureCoords coords_6 =  _texWuerfelSechs.getImageTexCoords();

	  // Vorne
	  _texWuerfelFuenf.enable();
	  _texWuerfelFuenf.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS); // Vierecke zeichnen
	   	gl.glTexCoord2f(coords_5.left(), coords_5.bottom());
	  	gl.glVertex3f(-x,-y, z);
	  	gl.glTexCoord2f(coords_5.right(), coords_5.bottom());
	  	gl.glVertex3f( x,-y, z);
	  	gl.glTexCoord2f(coords_5.right(), coords_5.top());
	  	gl.glVertex3f( x, y, z);
	  	gl.glTexCoord2f(coords_5.left(), coords_5.top());
	  	gl.glVertex3f(-x, y, z);
	  gl.glEnd();
	  _texWuerfelFuenf.disable();
	  	
	  // Hinten
	  _texWuerfelZwei.enable();
	  _texWuerfelZwei.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS);
	  	gl.glTexCoord2f(coords_2.left(), coords_2.bottom());
	  	gl.glVertex3f( x,-y,-z);
	  	gl.glTexCoord2f(coords_2.right(), coords_2.bottom());
	  	gl.glVertex3f(-x,-y,-z);
	  	gl.glTexCoord2f(coords_2.right(), coords_2.top());
	  	gl.glVertex3f(-x, y,-z);
	  	gl.glTexCoord2f(coords_2.left(), coords_2.top());
	  	gl.glVertex3f( x, y,-z);
	  gl.glEnd();
	  _texWuerfelZwei.disable();
	  	
	  // Links
	  _texWuerfelDrei.enable();
	  _texWuerfelDrei.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS);
	  	gl.glTexCoord2f(coords_3.left(), coords_3.bottom());
	  	gl.glVertex3f(-x,-y,-z);
	  	gl.glTexCoord2f(coords_3.right(), coords_3.bottom());
	  	gl.glVertex3f(-x,-y, z);
	  	gl.glTexCoord2f(coords_3.right(), coords_3.top());
	  	gl.glVertex3f(-x, y, z);
	  	gl.glTexCoord2f(coords_3.left(), coords_3.top());
	  	gl.glVertex3f(-x, y,-z);
	  gl.glEnd();
	  _texWuerfelDrei.disable();

	  // Rechts	  
	  _texWuerfelVier.enable();
	  _texWuerfelVier.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS);	  
	  	gl.glTexCoord2f(coords_4.left(), coords_4.bottom());
	  	gl.glVertex3f( x,-y, z);
	  	gl.glTexCoord2f(coords_4.right(), coords_4.bottom());
	  	gl.glVertex3f( x,-y,-z);
	  	gl.glTexCoord2f(coords_4.right(), coords_4.top());
	  	gl.glVertex3f( x, y,-z);
	  	gl.glTexCoord2f(coords_4.left(), coords_4.top());
	  	gl.glVertex3f( x, y, z);
	  gl.glEnd();
	  _texWuerfelVier.disable();

	  // Oben  
	  _texWuerfelEins.enable();
	  _texWuerfelEins.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS);
	  	gl.glTexCoord2f(coords_1.left(), coords_1.bottom());
	  	gl.glVertex3f(-x, y, z);
	  	gl.glTexCoord2f(coords_1.right(), coords_1.bottom());
	  	gl.glVertex3f( x, y, z);
	  	gl.glTexCoord2f(coords_1.right(), coords_1.top());
	  	gl.glVertex3f( x, y,-z);
	  	gl.glTexCoord2f(coords_1.left(), coords_1.top());
	  	gl.glVertex3f(-x, y,-z);
	  gl.glEnd();
	  _texWuerfelEins.disable();

	  // Unten
	  _texWuerfelSechs.enable();
	  _texWuerfelSechs.bind(); // bindet die Textur ein..
	  gl.glBegin(GL.GL_QUADS);
	  	gl.glTexCoord2f(coords_6.left(), coords_6.bottom());
	  	gl.glVertex3f( x,-y,-z);
	  	gl.glTexCoord2f(coords_6.right(), coords_6.bottom());
	  	gl.glVertex3f(-x,-y,-z);
	  	gl.glTexCoord2f(coords_6.right(), coords_6.top());
	  	gl.glVertex3f(-x,-y, z);
	  	gl.glTexCoord2f(coords_6.left(), coords_6.top());
	  	gl.glVertex3f( x,-y, z);
	  gl.glEnd();
	  _texWuerfelSechs.disable();

	  if (rotX < 360)
		          rotX += 0.2f;
		      else rotX = 0.0f;
		  
		      if (rotY < 360)
		          rotY += 0.3f;
		      else rotY = 0.0f;
		  
		      if (rotZ < 360)
		          rotZ += 0.1f;
		      else rotZ = 0.0f;
		  
		      if (scale >= 1.5f)
		          scaleUp = false;
		      else if (scale <= 0.25f)
		          scaleUp = true;
		  
		      if (scaleUp)
		          scale += 0.0005f;
		      else scale -= 0.0005f;
	  
	  gl.glPopMatrix();
  }
```


----------



## Evil-Devil (20. Jun 2007)

Rufst du denn deine drawWuerfel in einer Schleife auf? Solange sich die Rotationswerte nicht ändern, wirst du keine Rotation sehen.

Ebenso kannst du mal von den einzelnen Seite das glBegin() und glEnd() entfernen. Das brauchst du nur am Anfang und am Ende. Jeder Aufruf von glBegin()/glEnd() ist sehr teuer.


----------



## Guest (20. Jun 2007)

Ich hab es so probiert, wie es auf der Seite stand. Dann kann ich jedoch keine Texturen auf den Würfel legen. Es sieht zwar ecklig aus, aber so funktioniert das leider mit den Texturen und dem Würfel.

drawWuerfel wird nicht in ner Schleife aufgerufen. Es sollte per Taste "w" passieren und dann soll er sich zufällig drehen. Danach muss ich raus bekommen, welche Werte oben gezeigt wird, damit ich diese übergeben kann.


----------



## duces (20. Jun 2007)

Man sollte sich vorher anmelden, bevor man was schreibt.  :lol: 



> BeitragVerfasst am: 20. 06. 2007, 10:30    Titel:
> Ich hab es so probiert, wie es auf der Seite stand. Dann kann ich jedoch keine Texturen auf den Würfel legen. Es sieht zwar ecklig aus, aber so funktioniert das leider mit den Texturen und dem Würfel.
> 
> drawWuerfel wird nicht in ner Schleife aufgerufen. Es sollte per Taste "w" passieren und dann soll er sich zufällig drehen. Danach muss ich raus bekommen, welche Werte oben gezeigt wird, damit ich diese übergeben kann.


----------



## Evil-Devil (20. Jun 2007)

@Seite: Welche Seite? Den Link den ich gepostet hab?

Hast du dir den Quellcode zu dem Tutorial runtergeladen?

@schleife: aber es muss doch irgendwo eine Renderschleife geben...oder bietet JOGL dafür eine extra Klasse an?


----------



## duces (20. Jun 2007)

Ich hab mal nen Bild dazu gemacht, was eigentlich passieren soll.






Die blaue Linie stellt die Flugbahn des Würfels dar.

Vom Ablauf her sollte es so sein.
1) Zufallszahl zwischen 1 - 6
2) Würfel richtig hin drehen, das die gewürfelte Zahl oben steht
3) rotierender Würfel entlang der blauen Linie
4) Würfel liegt in der Spielfeld mitte

So stelle ich mir das vor, bzw. soll ich das umsetzen.  ???:L


----------



## Evil-Devil (20. Jun 2007)

Achso. Naja, dann würd ich erstmal mit den Grundlegenden Dingen wie der Spiellogik und dem Spielfeld inklusive Figuren.

Hier hat jemand auch MADN programmiert:
http://www.delphigl.com/forum/viewtopic.php?t=6486

Das der Würfel genau in der Mitte zum stehen kommt und immer die selbe Flugbahn hat fänd ich ziehmlich ätzend. Dann lieber in einem extra Viewport oder einem kleinen Bereich in dem du den/die Würfel fallen lässt.

Ebenso empfehl ich dir dich noch ein wenig JOGL und OpenGL auseinanderzusetzen, bevor du dich an das Programm wagst. Zumindest solltest du die Texturing Tutorials durcharbeiten und ein wenig damit herumexperimentieren.


----------



## duces (20. Jun 2007)

Gefällt dir was an unseren Texturen nicht?  :? 

In welchem Bereich würdest du das mit dem Würfel vorschlagen? Denn ich fand bis jetzt die Variante, das er in der Mitte ist, optisch noch am besten.


----------



## Evil-Devil (20. Jun 2007)

Find es nur sehr komich von flow das der würfel immer in der Mitte zum stehen kommt. Ist halt nicht so realistisch 

Ich würde zu einem drehenden WÜrfel an einer fixen Position tendieren der dann einfach stoppt. Zb. oben in der Ecke. Aber das ist letztenendes deine Entscheidung.

@Texturen: Auf die hab ich gar nicht geachtet...nen blauer WÜrfel schaut schon urig aus.


----------



## masta // thomas (20. Jun 2007)

Ich find die Idee mit einem extra Viewport auch wesentlich schöner - wird in vielen Spielen auch so gemacht, z.B. Monopoly @ XBox.


----------



## duces (20. Jun 2007)

Ich hab leider keine Xbox und wüsste auch gerade net, wie das mit nem Viewport aussehen sollte.

Aber ich geb euch mal nen Link zum den Quellcode Dateien.

Dort hab ich gerade mal nen Archiv hinterlegt. Vielleicht kann man mir ja damit besser geholfen werden.


----------

