[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