[Orxonox-commit 5454] r10117 - code/branches/surfaceraceHS14/src/modules/dodgerace2
sriedel at orxonox.net
sriedel at orxonox.net
Wed Nov 12 14:27:52 CET 2014
Author: sriedel
Date: 2014-11-12 14:27:50 +0100 (Wed, 12 Nov 2014)
New Revision: 10117
Added:
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h
Modified:
code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.cc
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h
code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h
Log:
Bullshit
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/CMakeLists.txt 2014-11-12 13:27:50 UTC (rev 10117)
@@ -2,6 +2,7 @@
DodgeRace.cc
DodgeRaceCenterPoint.cc
DodgeRaceHUDinfo.cc
+DodgeRaceShip.cc
)
ORXONOX_ADD_LIBRARY(dodgerace2
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.cc 2014-11-12 13:27:50 UTC (rev 10117)
@@ -44,8 +44,8 @@
// ! HACK
#include "infos/PlayerInfo.h"
-#include "DodgeRaceCenterPoint.h"
-/*#include "DodgeRaceShip.h"
+/*#include "DodgeRaceCenterPoint.h"
+#include "DodgeRaceShip.h"
#include "DodgeRaceEnemy.h"
#include "DodgeRaceEnemyShooter.h"
*/
@@ -60,7 +60,7 @@
{
RegisterObject(DodgeRace);
this->numberOfBots_ = 0; //sets number of default bots temporarly to 0
- this->center_ = 0;
+ this->center_ = NULL;
init();
this->setHUDTemplate("DodgeRaceHUD"); // !!!!!!!!!!!!!!! change later
}
@@ -81,7 +81,7 @@
void DodgeRace::levelUp()
{
- level++;/*
+ level++;
if (getPlayer() != NULL)
{
for (int i = 0; i < 7; i++)
@@ -95,20 +95,22 @@
addPoints(multiplier * 42);
multiplier *= 2;
toggleShowLevel();
- showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&DodgeRace::toggleShowLevel, this)));*/
+ showLevelTimer.setTimer(1.0f, false, createExecutor(createFunctor(&DodgeRace::toggleShowLevel, this)));
}
- /*WeakPtr<DodgeRaceShip> DodgeRace::getPlayer()
+ WeakPtr<DodgeRaceShip> DodgeRace::getPlayer()
{
if (player == NULL)
{
- //for (ObjectList<DodgeRaceShip>::iterator it = ObjectList<DodgeRaceShip>::begin(); it != ObjectList<DodgeRaceShip>::end(); ++it)
- // player = *it;
+ for (ObjectList<DodgeRaceShip>::iterator it = ObjectList<DodgeRaceShip>::begin(); it != ObjectList<DodgeRaceShip>::end(); ++it)
+ {
+ player = *it;
+ }
}
return player;
}
- void DodgeRace::spawnEnemy()
+ /*void DodgeRace::spawnEnemy()
{
if (getPlayer() == NULL)
return;
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRace.h 2014-11-12 13:27:50 UTC (rev 10117)
@@ -35,15 +35,13 @@
#ifndef _DodgeRace_H__
#define _DodgeRace_H__
-//#include "dodgerace2/DodgeRacePrereqs.h"
+#include "dodgerace2/DodgeRacePrereqs.h"
-#include "DodgeRaceCenterPoint.h"
-#include "DodgeRaceHUDinfo.h"
+//#include "DodgeRaceCenterPoint.h"
+//#include "DodgeRaceHUDinfo.h"
+//#include "DodgeRaceShip.h"
#include "gametypes/Deathmatch.h"
-
-#include "DodgeRaceCenterPoint.h"
-
#include "tools/Timer.h"
namespace orxonox
@@ -81,9 +79,9 @@
bool bShowLevel;
private:
void toggleShowLevel(){bShowLevel = !bShowLevel;}
- //WeakPtr<DodgeRaceShip> getPlayer();
+ WeakPtr<DodgeRaceShip> getPlayer();
WeakPtr<DodgeRaceCenterPoint> center_;
- //WeakPtr<DodgeRaceShip> player;
+ WeakPtr<DodgeRaceShip> player;
Timer enemySpawnTimer;
Timer comboTimer;
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.cc
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.cc 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.cc 2014-11-12 13:27:50 UTC (rev 10117)
@@ -35,7 +35,7 @@
#include "core/CoreIncludes.h"
-//#include "DodgeRace.h"
+#include "DodgeRace.h"
namespace orxonox
{
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceCenterPoint.h 2014-11-12 13:27:50 UTC (rev 10117)
@@ -35,10 +35,11 @@
#ifndef _DodgeRaceCenterPoint_H__
#define _DodgeRaceCenterPoint_H__
-//#include "dodgerace2/DodgeRacePrereqs.h"
-#include "DodgeRace.h"
-#include "DodgeRaceHUDinfo.h"
+#include "dodgerace2/DodgeRacePrereqs.h"
+//#include "DodgeRace.h"
+//#include "DodgeRaceHUDinfo.h"
+
#include "worldentities/StaticEntity.h"
namespace orxonox
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.cc 2014-11-12 13:27:50 UTC (rev 10117)
@@ -29,7 +29,7 @@
#include "core/CoreIncludes.h"
#include "core/XMLPort.h"
#include "util/Convert.h"
-#include "DodgeRace.h"
+//#include "DodgeRace.h"
namespace orxonox
{
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceHUDinfo.h 2014-11-12 13:27:50 UTC (rev 10117)
@@ -27,10 +27,12 @@
#ifndef _DodgeRaceHUDinfo_H__
#define _DodgeRaceHUDinfo_H__
-//#include "DodgeRacePrereqs.h"
+//#include "DodgeRaceShip.h"
#include "DodgeRace.h"
-#include "DodgeRaceCenterPoint.h"
+//#include "DodgeRaceCenterPoint.h"
+#include "dodgerace2/DodgeRacePrereqs.h"
+
#include "tools/interfaces/Tickable.h"
#include "overlays/OverlayText.h"
Modified: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h 2014-11-05 15:45:29 UTC (rev 10116)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRacePrereqs.h 2014-11-12 13:27:50 UTC (rev 10117)
@@ -42,8 +42,8 @@
// Shared library settings
//-----------------------------------------------------------------------
-#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(INVADER_STATIC_BUILD)
-# ifdef INVADER_SHARED_BUILD
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(DODGERACE_STATIC_BUILD)
+# ifdef DODGERACE_SHARED_BUILD
# define _DodgeRaceExport __declspec(dllexport)
# else
# if defined( __MINGW32__ )
@@ -67,14 +67,14 @@
namespace orxonox
{
- //class DodgeRace;
- class DodgeRaceCenterPoint;/*
+ class DodgeRace;
+ class DodgeRaceCenterPoint;
class DodgeRaceShip;
- class DodgeRaceEnemy;
- class DodgeRaceEnemyShooter;
- class DodgeRaceWeapon;
- class DodgeRaceWeaponEnemy;*/
+ //class DodgeRaceEnemy;
+ //class DodgeRaceEnemyShooter;
+ //class DodgeRaceWeapon;
+ //class DodgeRaceWeaponEnemy;
class DodgeRaceHUDinfo;
}
-#endif /* _DodgeRacePrereqs_H__ */
+#endif /* _DodgeRacePrereqs_H__*/
Added: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc (rev 0)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.cc 2014-11-12 13:27:50 UTC (rev 10117)
@@ -0,0 +1,188 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Florian Zinggeler
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DodgeRaceShip.cc
+ @brief Implementation of the DodgeRaceShip class.
+*/
+
+#include "DodgeRaceShip.h"
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+//#include "DodgeRace.h"
+
+namespace orxonox
+{
+ RegisterClass(DodgeRaceShip);
+
+ DodgeRaceShip::DodgeRaceShip(Context* context) : SpaceShip(context)
+ {
+ RegisterObject(DodgeRaceShip);
+
+ speed = 500;
+ isFireing = false;
+ damping = 10;
+ }
+
+ void DodgeRaceShip::tick(float dt)
+ {
+ Vector3 pos = getPosition();
+
+ //Movement calculation
+ lastTimeFront += dt * damping;
+ lastTimeLeft += dt * damping;
+ lastTime += dt;
+
+ velocity.x = interpolate(clamp(lastTimeLeft, 0.0f, 1.0f), desiredVelocity.x, 0.0f);
+ velocity.y = interpolate(clamp(lastTimeFront, 0.0f, 1.0f), desiredVelocity.y, 0.0f);
+
+ //Execute movement
+ if (this->hasLocalController())
+ {
+ float dist_y = velocity.y * dt;
+ float dist_x = velocity.x * dt;
+ if(dist_y + posforeward > -42*3 && dist_y + posforeward < 42*6)
+ posforeward += dist_y;
+ else
+ {
+ velocity.y = 0;
+ // restart if game ended
+ if (getGame())
+ if (getGame()->bEndGame)
+ {
+ getGame()->start();
+ return;
+ }
+ }
+ if (pos.z + dist_x > 42*2.5 || pos.z + dist_x < -42*3)
+ velocity.x = 0;
+ pos += Vector3(1000 + velocity.y, 0, velocity.x) * dt;
+ }
+
+ // shoot!
+ if (isFireing)
+ ControllableEntity::fire(0);
+
+ // Camera
+ WeakPtr<Camera> camera = this->getCamera();
+ if (camera != NULL)
+ {
+ camera->setPosition(Vector3(-pos.z, -posforeward, 0));
+ camera->setOrientation(Vector3::UNIT_Z, Degree(90));
+ }
+
+
+
+ // bring back on track!
+ if(pos.y != 0)
+ pos.y = 0;
+
+ setPosition(pos);
+ setOrientation(Vector3::UNIT_Y, Degree(270));
+
+ // Level up!
+ if (pos.x > 42000)
+ {
+ updateLevel();
+ setPosition(Vector3(0, 0, pos.z)); // pos - Vector3(30000, 0, 0)
+ }
+
+ SUPER(DodgeRaceShip, tick, dt);
+ }
+
+ void DodgeRaceShip::updateLevel()
+ {
+ lastTime = 0;
+ if (getGame())
+ getGame()->levelUp();
+ }
+
+ void DodgeRaceShip::moveFrontBack(const Vector2& value)
+ {
+ lastTimeLeft = 0;
+ desiredVelocity.x = -value.x * speed;
+ }
+
+ void DodgeRaceShip::moveRightLeft(const Vector2& value)
+ {
+ lastTimeFront = 0;
+ desiredVelocity.y = value.y * speed * 42;
+ }
+ void DodgeRaceShip::boost(bool bBoost)
+ {
+ isFireing = bBoost;
+ }
+ /* inline bool DodgeRaceShip::collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint)
+ {
+ // orxout() << "touch!!! " << endl; //<< otherObject << " at " << contactPoint;
+ WeakPtr<DodgeRaceEnemy> enemy = orxonox_cast<DodgeRaceEnemy*>(otherObject);
+ WeakPtr<Projectile> shot = orxonox_cast<Projectile*>(otherObject);
+ // ensure that this gets only called once per enemy.
+ if (enemy != NULL && lastEnemy != enemy)
+ {
+ lastEnemy = enemy;
+
+ removeHealth(20);
+ if (getGame())
+ {
+ getGame()->multiplier = 1;
+ }
+ }
+ // was shot, decrease multiplier
+ else if (shot != NULL && lastShot != shot)
+ {
+ if (getGame() && orxonox_cast<DodgeRaceEnemy*>(shot->getShooter()) != NULL)
+ {
+ if (getGame()->multiplier > 1)
+ {
+ lastShot = shot;
+ getGame()->multiplier -= 1;
+ }
+ }
+ }
+ return false;
+ // SUPER(DodgeRaceShip, collidesAgainst, otherObject, contactPoint);
+ }*/
+
+ WeakPtr<DodgeRace> DodgeRaceShip::getGame()
+ {
+ if (game == NULL)
+ {
+ for (ObjectList<DodgeRace>::iterator it = ObjectList<DodgeRace>::begin(); it != ObjectList<DodgeRace>::end(); ++it)
+ game = *it;
+ }
+ return game;
+ }
+
+ void DodgeRaceShip::death()
+ {
+ getGame()->costLife();
+ SpaceShip::death();
+ }
+}
Added: code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h
===================================================================
--- code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h (rev 0)
+++ code/branches/surfaceraceHS14/src/modules/dodgerace2/DodgeRaceShip.h 2014-11-12 13:27:50 UTC (rev 10117)
@@ -0,0 +1,94 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Florian Zinggeler
+ * Co-authors:
+ * ...
+ *
+ */
+
+/**
+ @file DodgeRaceShip.h
+ @brief Declaration of the DodgeRaceShip class.
+*/
+
+#ifndef _DodgeRaceShip_H__
+#define _DodgeRaceShip_H__
+
+
+#include "dodgerace2/DodgeRacePrereqs.h"
+
+#include "worldentities/pawns/SpaceShip.h"
+#include "graphics/Camera.h"
+#include "weapons/projectiles/Projectile.h"
+//#include "DodgeRace.h"
+//#include "DodgeRaceCenterPoint.h"
+
+namespace orxonox
+{
+ class DodgeRaceShip : public SpaceShip
+ {
+ public:
+ DodgeRaceShip(Context* context);
+
+ virtual void tick(float dt);
+
+ // overwrite for 2d movement
+ virtual void moveFrontBack(const Vector2& value);
+ virtual void moveRightLeft(const Vector2& value);
+
+ // Starts or stops fireing
+ virtual void boost(bool bBoost);
+
+ //no rotation!
+ virtual void rotateYaw(const Vector2& value){};
+ virtual void rotatePitch(const Vector2& value){};
+ //return to main menu if game has ended.
+ virtual void rotateRoll(const Vector2& value){if (getGame()) if (getGame()->bEndGame) getGame()->end();};
+
+ virtual void updateLevel();
+
+ //virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
+
+ protected:
+ virtual void death();
+
+ private:
+ WeakPtr<DodgeRace> getGame();
+ WeakPtr<DodgeRace> game;
+ Camera* camera;
+ bool isFireing;
+ float speed, damping, posforeward;
+ float lastTimeFront, lastTimeLeft, lastTime;
+ struct Velocity
+ {
+ float x;
+ float y;
+ } velocity, desiredVelocity;
+
+ // WeakPtr<DodgeRaceEnemy> lastEnemy;
+ WeakPtr<Projectile> lastShot;
+
+ };
+}
+
+#endif /* _DodgeRaceShip_H__ */
More information about the Orxonox-commit
mailing list