Index: orxonox/trunk/IDEAS
===================================================================
--- orxonox/trunk/IDEAS	(revision 1879)
+++ orxonox/trunk/IDEAS	(revision 1879)
@@ -0,0 +1,6 @@
+
+
+all: fill in your ideas here!
+
+Spacecraft trasformation
+
Index: orxonox/trunk/core/Makefile
===================================================================
--- orxonox/trunk/core/Makefile	(revision 1875)
+++ orxonox/trunk/core/Makefile	(revision 1879)
@@ -51,5 +51,5 @@
 
 .cc.o:
-	@ echo "$@ wird kompiliert..."
+	@ echo "$@ is being compiled..."
 	@ $(CXX) -c $(CFLAGS) -I$(INCDIR) -o $@ $<
 
@@ -60,5 +60,5 @@
 
 $(TARGET): $(OBJECTS)
-	@ echo "orxonox wird gelinkt..."
+	@ echo "orxonox is being linked..."
 	@ $(CXX) $(LIBS) -o $(TARGET) $(OBJECTS)
 
@@ -74,5 +74,5 @@
 	
 clean:
-	rm -rf *.o *~
+	rm -rf *.o *~ orxonox
 
 
Index: orxonox/trunk/core/input_output.cc
===================================================================
--- orxonox/trunk/core/input_output.cc	(revision 1875)
+++ orxonox/trunk/core/input_output.cc	(revision 1879)
@@ -43,24 +43,26 @@
 void InputOutput::goUp() 
 {
-  (*player).goX(BASE_STEP);
+  (*player).goY(STEP_FRONT);
 }
 
 void InputOutput::goDown() 
 {
-  (*player).goX(-BASE_STEP);
+  (*player).goY(-STEP_FRONT);
 }
 
 void InputOutput::goLeft()
 {
-  (*player).goY(-BASE_STEP);
+  (*player).goX(-STEP_SIDE);
+
 }
 
 void InputOutput::goRight()
 {
-  (*player).goY(BASE_STEP);
+
+  (*player).goX(STEP_SIDE);
 }
 
 void InputOutput::shoot()
 {
-  (*player).shoot(BASE_STEP);
+  (*player).shoot(1);
 }
Index: orxonox/trunk/core/input_output.h
===================================================================
--- orxonox/trunk/core/input_output.h	(revision 1875)
+++ orxonox/trunk/core/input_output.h	(revision 1879)
@@ -9,5 +9,6 @@
 #include "player.h"
 
-#define BASE_STEP 2
+#define STEP_SIDE 0.4
+#define STEP_FRONT 0.2
 
 class InputOutput {
Index: orxonox/trunk/core/orxonox.cc
===================================================================
--- orxonox/trunk/core/orxonox.cc	(revision 1875)
+++ orxonox/trunk/core/orxonox.cc	(revision 1879)
@@ -54,4 +54,8 @@
 bool Orxonox::rightWeGo = false;
 bool Orxonox::leftWeGo = false;
+int Orxonox::alpha = 0;
+int Orxonox::beta = 0;
+//int Orxonox::offsetX = 0;
+//int Orxonox::offsetY = 0;
 
 Orxonox* Orxonox::getInstance (void)
@@ -68,4 +72,5 @@
   glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
   glutInitWindowSize(500, 500);
+  //glutFullScreen();
   glutInitWindowPosition(100, 100);
   glutCreateWindow("orxOnox");
@@ -93,6 +98,6 @@
   //  (*localPlayer).addIO(io);
 
-  glutIgnoreKeyRepeat(1);                 /* for win32 */
-  glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF);  /* for linux X11 */
+  //glutIgnoreKeyRepeat(1);                 /* for win32 */
+  //glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF);  /* for linux X11 */
   glutSpecialFunc(specFunc); 
   glutSpecialUpFunc(releaseKey);
@@ -107,4 +112,20 @@
 {
   switch(key) {
+
+    /* perspectiv control */
+  case 'w':
+    beta -= 1;
+    break;
+  case 's':
+    beta += 1;
+    break;
+  case 'a':
+    alpha -= 1;
+    break;
+  case 'd':
+    alpha += 1;
+    break;
+
+    /* game controls */
 
   case 'p':
@@ -131,6 +152,7 @@
 void Orxonox::quitGame() 
 {
-  glutSetKeyRepeat(GLUT_KEY_REPEAT_DEFAULT); /*do not remove or you will have
-					  no repeating keys anymore...*/
+  //glutIgnoreKeyRepeat(0);                 /* for win32 */
+  //glutSetKeyRepeat(GLUT_KEY_REPEAT_DEFAULT); /*do not remove or you will have
+  //					  no repeating keys anymore...*/
   cout << "finished garbage colletion, quitting..." << endl;
   exit(0);
@@ -165,4 +187,7 @@
 {
   switch(key) {
+
+    /* spacecraft controls */
+    
   case GLUT_KEY_UP:
     upWeGo = true;
@@ -184,5 +209,10 @@
 {
   glClear(GL_COLOR_BUFFER_BIT);
+
+  glColor3f(0.0, 0.5, 0.6);
+  glLoadIdentity();
+  gluLookAt(0.0, -14.0, 15.0, 0.0 + alpha, 0.0 + beta, 0.0, 0.0, 1.0, 0.0);
   (*world).drawWorld();
+
   glutSwapBuffers();
 } 
@@ -203,4 +233,6 @@
   }
   /* request repaint */
+
+  //cout << "contiousRedraw" << endl;
   glutPostRedisplay();
 }
@@ -212,5 +244,7 @@
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
-  glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
+  //glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0); pb: //simple and working
+  glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 200.0);
+  //glFrustum(-10.0, 10.0, -5.0, 10.0, 0.0, 100.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity(); //pb why a second time?
@@ -220,7 +254,7 @@
 void Orxonox::testTheShit() 
 {
-  Player* pl = new Player;
-  (*pl).setPosition(1, 1, 1);
-  (*world).addPlayer(pl);
+  //Player* pl = new Player;
+  //(*pl).setPosition(1, 1, 1);
+  //(*world).addPlayer(pl);
   
   //NPC* nl = new NPC;
Index: orxonox/trunk/core/orxonox.h
===================================================================
--- orxonox/trunk/core/orxonox.h	(revision 1875)
+++ orxonox/trunk/core/orxonox.h	(revision 1879)
@@ -33,4 +33,9 @@
   static bool leftWeGo;
 
+  static int alpha;
+  static int beta;
+  static int offsetX;
+  static int offsetY;
+
  public:
 
Index: orxonox/trunk/core/player.cc
===================================================================
--- orxonox/trunk/core/player.cc	(revision 1875)
+++ orxonox/trunk/core/player.cc	(revision 1879)
@@ -32,15 +32,15 @@
 
 
-void Player::setPosition( int x, int y, int z)
+void Player::setPosition( float x, float y, float z)
 {
   xCor = x; yCor = y; zCor = z;
 }
 
-void Player::getPosition(int* x, int* y, int* z) 
+void Player::getPosition(float* x, float* y, float* z) 
 {
   *x = xCor; *y = yCor; *z = zCor;
 }
 
-void Player::goX(int x) 
+void Player::goX(float x) 
 {
   xCor += x;
@@ -48,10 +48,10 @@
 
 
-void Player::goY(int y)
+void Player::goY(float y)
 {
   yCor += y;
 }
 
-void Player::goZ(int z)
+void Player::goZ(float z)
 {
   zCor += z;
@@ -68,6 +68,14 @@
 {
   //cout << "Player::drawPlayer()" << endl;
-  glColor3f(1.0, 0.9, 0.4);
-  glRectf(-5.0 + yCor, -5.0 + xCor, 5.0 + yCor, 5.0 + xCor);
+  //glColor3f(0.0, 0.9, 0.7);
+  //glRectf(-0.5 + yCor, -0.5 + xCor, 0.5 + yCor, 2.0 + xCor);
+
+  glPushMatrix();
+  glScalef(1.0, 3.0, 1.0);
+  glTranslatef(xCor, yCor, 3.0);
+  glutWireCube(1.0);
+  glPopMatrix();
+
+
   cout << "x: " << xCor << " y: " << yCor << endl;
 }
Index: orxonox/trunk/core/player.h
===================================================================
--- orxonox/trunk/core/player.h	(revision 1875)
+++ orxonox/trunk/core/player.h	(revision 1879)
@@ -14,9 +14,9 @@
   ~Player ();
 
-  void setPosition(int x, int y, int z);
-  void getPosition(int* x, int* y, int* z);
-  void goX(int x);
-  void goY(int y);
-  void goZ(int x);
+  void setPosition(float x, float y, float z);
+  void getPosition(float* x, float* y, float* z);
+  void goX(float x);
+  void goY(float y);
+  void goZ(float x);
   void shoot(int n);
   //  void addIO(InputOutput *io);
@@ -25,7 +25,7 @@
  private:
   /* position of the space craft */
-  int xCor;
-  int yCor;
-  int zCor;
+  float xCor;
+  float yCor;
+  float zCor;
 
 
Index: orxonox/trunk/core/world.cc
===================================================================
--- orxonox/trunk/core/world.cc	(revision 1875)
+++ orxonox/trunk/core/world.cc	(revision 1879)
@@ -117,8 +117,9 @@
    \brief Draws the World and all Objects contained
    
-   Calls the draw function of all: Objects, Players, Environement
+   Calls the draw function of all: Objects, Players, Environement. This is the core of all graphics here.
 */
 void World::drawWorld(void) 
 {
+  /* first draw all players */
   playerList* tmpPlayer = lastPlayer;
   Player* player = tmpPlayer->player;
@@ -128,4 +129,5 @@
       tmpPlayer = tmpPlayer->next;
     }
+  /* second draw all npcs */
   npcList* tmpNPC = lastNPC;
   while( tmpNPC != null )
@@ -134,4 +136,42 @@
       tmpNPC = tmpNPC->next;
     }
+  /* now draw the rest of the world: environement */
+  glColor3f(0.0, 1.0, 0.0);
+  glBegin(GL_LINES);
+  glVertex3f(0.0, -10.0, 0.0);
+  glVertex3f(0.0, 200.0, 0.0);
+
+  glVertex3f(5.0, -10.0, 0.0);
+  glVertex3f(5.0, 200.0, 0.0);
+
+  glVertex3f(-5.0, -10.0, 0.0);
+  glVertex3f(-5.0, 200.0, 0.0);
+
+  glVertex3f(10.0, -10.0, 0.0);
+  glVertex3f(10.0, 200.0, 0.0);
+
+  glVertex3f(-10.0, -10.0, 0.0);
+  glVertex3f(-10.0, 200.0, 0.0);
+
+  glVertex3f(15.0, -10.0, 0.0);
+  glVertex3f(15.0, 200.0, 0.0);
+
+  glVertex3f(-15.0, -10.0, 0.0);
+  glVertex3f(-15.0, 200.0, 0.0);
+
+  glVertex3f(20.0, -10.0, 0.0);
+  glVertex3f(20.0, 200.0, 0.0);
+
+  glVertex3f(-20.0, -10.0, 0.0);
+  glVertex3f(-20.0, 200.0, 0.0);
+
+  glVertex3f(25.0, -10.0, 0.0);
+  glVertex3f(25.0, 200.0, 0.0);
+
+  glVertex3f(-25.0, -10.0, 0.0);
+  glVertex3f(-25.0, 200.0, 0.0);
+  glEnd();
+
+
 }
 
