[Orxonox-commit 7318] r11935 - code/branches/OrxyRoad_FS18/src/modules/orxyroad

jacobsr at orxonox.net jacobsr at orxonox.net
Thu May 3 15:57:10 CEST 2018


Author: jacobsr
Date: 2018-05-03 15:57:08 +0200 (Thu, 03 May 2018)
New Revision: 11935

Modified:
   code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc
   code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.h
   code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc
   code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h
Log:
new functin for generating streets

Modified: code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc
===================================================================
--- code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc	2018-05-03 13:47:08 UTC (rev 11934)
+++ code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.cc	2018-05-03 13:57:08 UTC (rev 11935)
@@ -56,6 +56,12 @@
         counter = 5000;
         pattern = 3;
         lastPosition = 0;
+        roadWidth = 3000;
+
+        
+
+
+
         // spawn enemy every 3.5 seconds
         //enemySpawnTimer.setTimer(3.5f, true, createExecutor(createFunctor(&OrxyRoad::spawnEnemy, this)));
         comboTimer.setTimer(3.0f, true, createExecutor(createFunctor(&OrxyRoad::comboControll, this)));
@@ -87,7 +93,53 @@
         toggleShowLevel();
         showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&OrxyRoad::toggleShowLevel, this)));
     }
+    int OrxyRoad::generateStreet(int type, OrxyRoadShip* player){
+        int trafficVelocities[]= {20,1000,500, 200};
+        int numObjects[] = {60,10,40,60}; // default, spaceship, sattellite, asteroid
+        int streetSize[] = {3 , 1, 2, 4};
+        int trackWidth = 800;
+      
+        for(int j = 0; j < streetSize[type]; j++)//width of Street
+            {
+                for(int i = -numObjects[type]/2; i<numObjects[type]/2; i++)
+                {
+                        OrxyRoadCube* cube = new OrxyRoadCube(this->center_->getContext());
+                        cubeList.push_back(cube);
+                        switch(type)
+                        {
+                        case 0 : cube->addTemplate("SingleOrxyRoadCube");//default
+                        break;
+                        case 1:
+                        
+                        cube->addTemplate("SingleOrxyRoadCube");//spaceship
 
+                        break;
+                        case 2: cube->addTemplate("SingleOrxyRoadCube");//satellite
+                        break;
+                        case 3: cube->addTemplate("SingleOrxyRoadCube");//asteroid
+
+                        }
+
+                        int distance = trafficVelocities[type]; //Todo better calculation of distance between objects
+                       
+                        cube->setPosition(player->getWorldPosition() + Vector3(1000.0f+j*trackWidth, 0.0f, i*600.0f+j*trackWidth));
+                        
+                        /* experimental */
+
+                        cube->setVelocity(0,0,trafficVelocities[type]);
+
+                        /* experimental */
+
+
+                        //stEntity->setScale3D(50,50,50);                    
+                }
+            }
+            return streetSize[type] * trackWidth;
+    }
+        
+
+
+
     void OrxyRoad::tick(float dt)
     {
         SUPER(OrxyRoad, tick, dt);
@@ -110,39 +162,17 @@
                 }
             }
 
+            
+
+
             if(counter >= 3000)
             {
-                counter = 0;
-                for(int j = 0; j < 3; j++)//deepth cube
-                {
-                    for(int i = -30; i<30; i++)
-                    {
-                        OrxyRoadCube* cube = new OrxyRoadCube(this->center_->getContext());
-                        cubeList.push_back(cube);
-                        switch(pattern)
-                        {
-                        case 1: cube->addTemplate("OrxyRoadCube01");
-                        break;
-                        case 2: cube->addTemplate("OrxyRoadCube01");
-                        break;
-                        case 3: cube->addTemplate("SingleOrxyRoadCube");
+                int type  = rand() % 4;
+                orxout(user_info) << "Random : "<<type<< endl;
 
-                        }
+                roadWidth = generateStreet(type,player);//Generate street to specific type type = 0 default, type = 1 space ship type  = 2 statellite/cubes, type = 3 asteroids 
+                counter = 0;                
 
-                        cube->setPosition(player->getWorldPosition() + Vector3(1000.0f+j*800.0f, 0.0f, i*600.0f+j*300));
-                        
-                        /* experimental */
-
-                        cube->setVelocity(0,0,500);
-
-                        /* experimental */
-
-
-                        //stEntity->setScale3D(50,50,50);
-                    }
-                }
-
-
                 //pattern %= 2;
                 //pattern ++;
 

Modified: code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.h
===================================================================
--- code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.h	2018-05-03 13:47:08 UTC (rev 11934)
+++ code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoad.h	2018-05-03 13:57:08 UTC (rev 11935)
@@ -117,6 +117,13 @@
             Timer showLevelTimer;
 
 
+            int generateStreet(int type, OrxyRoadShip* player);
+            int roadWidth;
+            //int trafficVelocities[4];
+            //int numObjects[4];
+            //int streetSize[4];
+
+
          /*
 
             //void spawnEnemy();

Modified: code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc
===================================================================
--- code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc	2018-05-03 13:47:08 UTC (rev 11934)
+++ code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.cc	2018-05-03 13:57:08 UTC (rev 11935)
@@ -199,11 +199,11 @@
         if(value.x==-1){
             steeredLeft = false;
             steeredRight = true;       
-            orxout(user_info) << "Steering RIGHT "<<steering_.x << endl;
+            //orxout(user_info) << "Steering RIGHT "<<steering_.x << endl;
         }else {
             steeredRight = false;
             steeredLeft = true;
-             orxout(user_info) << "Steering LEFT "<<steering_.x << endl;
+             //orxout(user_info) << "Steering LEFT "<<steering_.x << endl;
 
         }
         

Modified: code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h
===================================================================
--- code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h	2018-05-03 13:47:08 UTC (rev 11934)
+++ code/branches/OrxyRoad_FS18/src/modules/orxyroad/OrxyRoadShip.h	2018-05-03 13:57:08 UTC (rev 11935)
@@ -89,6 +89,7 @@
                 float x;
                 float y;
             } velocity, desiredVelocity;
+           
 
     };
 }



More information about the Orxonox-commit mailing list