[Orxonox-commit 7505] r12111 - in code/branches/OrxoKart_HS18: data/levels src/modules/orxokart
ottka at orxonox.net
ottka at orxonox.net
Wed Nov 21 11:49:03 CET 2018
Author: ottka
Date: 2018-11-21 11:49:03 +0100 (Wed, 21 Nov 2018)
New Revision: 12111
Modified:
code/branches/OrxoKart_HS18/data/levels/OrxoKart1.oxw
code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.cc
code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.h
code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.cc
code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.h
Log:
stop timer after round
Modified: code/branches/OrxoKart_HS18/data/levels/OrxoKart1.oxw
===================================================================
--- code/branches/OrxoKart_HS18/data/levels/OrxoKart1.oxw 2018-11-21 10:45:27 UTC (rev 12110)
+++ code/branches/OrxoKart_HS18/data/levels/OrxoKart1.oxw 2018-11-21 10:49:03 UTC (rev 12111)
@@ -18,7 +18,8 @@
<?lua
--number of tiles
-N = 25
+N = 11
+-- or 25
--scaling factor
S = 80
@@ -61,10 +62,11 @@
diffuse="1.0, 0.9, 0.9, 1.0"
specular="1.0, 0.9, 0.9, 1.0"
/>
-
+ <!-- 19 -->
<SpawnPoint
team=0
- position="<?lua print(S*0)?>,40,<?lua print(19*S)?>"
+
+ position="<?lua print(S*0)?>,40,<?lua print(8*S)?>"
lookat="0,40,0"
spawnclass=OrxoKartKart
pawndesign=OrxoKartKart
Modified: code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.cc
===================================================================
--- code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.cc 2018-11-21 10:45:27 UTC (rev 12110)
+++ code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.cc 2018-11-21 10:49:03 UTC (rev 12111)
@@ -57,14 +57,13 @@
{
SUPER(OrxoKart, tick, dt);
-
if(this->firstTick_ && this->origin_)
{
this->firstTick_ = false;
+ this->wayPoints = std::vector<OrxoKartTile*>(3, nullptr);
int n = this->origin_->getNumCells();
int s = this->origin_->getCellSize();
-
int map_1[] = {1,1,1,1,1,1,1,1,0,0,0
,1,0,0,0,0,0,0,1,1,1,0
,1,0,1,1,1,1,0,0,0,1,1
@@ -105,45 +104,78 @@
- int *levelcodeArray = map_2;
+ int *levelcodeArray = map_1;
-
+ // int z = 0;
//Generate floor according to levelcode
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
- if (int type = levelcodeArray[i*n + j])
- (new OrxoKartTile(origin_->getContext()))->init((n-1-i)*s, j*s, s, type);
+ if (int type = levelcodeArray[i*n + j]) {
+ OrxoKartTile* tile = new OrxoKartTile(origin_->getContext());
+ tile->init((n-1-i)*s, j*s, s, type);
+ // tiles.push_back(tile);
+ //++z;
+ if ( i == 10 && j == 4 )
+ wayPoints.at(0) = tile;
+
+ if ( i == 0 && j == 0)
+ wayPoints.at(1) = tile;
+ if ( i == 10 && j == 7)
+ wayPoints.at(2) = tile;
+ }
}
}
-
//bottom flag
- OrxoKartFlag* flag = new OrxoKartFlag(origin_->getContext());
- flag->init(n, s);
- flag_ = flag;
+ OrxoKartFlag* flag = new OrxoKartFlag(origin_->getContext());
+ flag->init(n, s);
+ flag_ = flag;
- }//firsttick end
+ } //firsttick end
+ /*
+ for (std::vector<OrxoKartTile*>::iterator it = tiles.begin(); it != tiles.end(); ++it ) {
+ if ((*it)->getCollided())
+ tiles.erase(it);
+ }
+ if (tiles.empty())
+ numberOfFlags_ = 0;
+ */
+ if (wayPointCounter >= 3)
+ numberOfFlags_ = 0;
+ else if (wayPointCounter < 3 && wayPointCounter >= 0 && wayPoints.at(wayPointCounter) != nullptr) {
+ if (wayPoints.at(wayPointCounter)->getCollided()) {
+ for (int i = 0; i < 3; ++i) {
+ wayPoints.at(i)->setCollided(false);
+ }
+ ++wayPointCounter;
+ }
+ }
+ else {
+ orxout() << " Should not happen, look in OrxoKart.cc";
+ }
-
-
+
+
+
+
// Check if ship collided with the flag
if(flag_->getCollided()){
OrxoKartKart* player = flag_->getObjectofCollision();
- orxout() << "Orientation= " << player->getOrientation() << endl;
- player->setPosition(Vector3(80*0, 40, 80*18));
+ player->setPosition(Vector3(80*0, 20, 80*8));
player->setOrientation(Quaternion(1, 0, 0, 0)); // 0, 0, 0
player->setVelocity(Vector3(0,0,0));
player->setAcceleration(Vector3(0,0,0));
flag_->setCollided(false);
+ wayPointCounter = 0;
// flag_->destroyLater();
// flags_.erase (flags_.begin()+i);
- numberOfFlags_ = 0;
+ //numberOfFlags_ = 0;
}
}
Modified: code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.h
===================================================================
--- code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.h 2018-11-21 10:45:27 UTC (rev 12110)
+++ code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKart.h 2018-11-21 10:49:03 UTC (rev 12111)
@@ -60,7 +60,10 @@
private:
WeakPtr<OrxoKartOrigin> origin_;
OrxoKartFlag* flag_;
- //std::vector<OrxoKartFlag*> flags_;
+ std::vector<OrxoKartTile*> tiles;
+ int numberOfWP;
+ std::vector<OrxoKartTile*> wayPoints;
+ int wayPointCounter = 0;
int numberOfFlags_;
bool firstTick_;
};
Modified: code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.cc
===================================================================
--- code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.cc 2018-11-21 10:45:27 UTC (rev 12110)
+++ code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.cc 2018-11-21 10:49:03 UTC (rev 12111)
@@ -103,4 +103,20 @@
this->attachCollisionShape(cs_);
}
+
+ /**
+ @brief
+ Checks if the OrxoKartship collided with the flag
+ */
+ bool OrxoKartTile::collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint)
+ {
+ if(otherObject->isA(Class(OrxoKartKart))) {
+ collided_ = true;
+ kartCollider = (OrxoKartKart*) otherObject;
+ }
+
+ return false;
+ }
+
+
}
Modified: code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.h
===================================================================
--- code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.h 2018-11-21 10:45:27 UTC (rev 12110)
+++ code/branches/OrxoKart_HS18/src/modules/orxokart/OrxoKartTile.h 2018-11-21 10:49:03 UTC (rev 12111)
@@ -38,6 +38,7 @@
#include "OrxoKartPrereqs.h"
#include "objects/ObjectsPrereqs.h"
+#include "OrxoKartKart.h"
#include "worldentities/StaticEntity.h"
namespace orxonox
@@ -50,9 +51,22 @@
void init(int x, int z, int s, int type);
+ virtual bool collidesAgainst(WorldEntity* otherObject, const btCollisionShape* ownCollisionShape, btManifoldPoint& contactPoint) override;
+
+ inline bool getCollided() const
+ { return this->collided_; }
+
+ inline OrxoKartKart* getObjectofCollision() const
+ { return this->kartCollider; }
+
+ inline void setCollided(bool setValue)
+ { this->collided_ = setValue; }
+
private:
Model* model_;
BoxCollisionShape* cs_;
+ bool collided_;
+ OrxoKartKart* kartCollider;
};
}
More information about the Orxonox-commit
mailing list