[Orxonox-commit 7229] r11843 - in code/branches/3DPacman_FS18: data/levels src/modules src/modules/Pacman
dreherm at orxonox.net
dreherm at orxonox.net
Thu Mar 29 18:14:31 CEST 2018
Author: dreherm
Date: 2018-03-29 18:14:30 +0200 (Thu, 29 Mar 2018)
New Revision: 11843
Added:
code/branches/3DPacman_FS18/src/modules/Pacman/
code/branches/3DPacman_FS18/src/modules/Pacman/CMakeLists.txt
code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.cc
code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.h
code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.cc
code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.h
Modified:
code/branches/3DPacman_FS18/data/levels/3DPacman.oxw
code/branches/3DPacman_FS18/src/modules/CMakeLists.txt
Log:
First try for moving ghosts
Modified: code/branches/3DPacman_FS18/data/levels/3DPacman.oxw
===================================================================
--- code/branches/3DPacman_FS18/data/levels/3DPacman.oxw 2018-03-29 14:04:35 UTC (rev 11842)
+++ code/branches/3DPacman_FS18/data/levels/3DPacman.oxw 2018-03-29 16:14:30 UTC (rev 11843)
@@ -29,6 +29,14 @@
<Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
<SpawnPoint team=0 position="0,10,245" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+<PacmanGhost position="0,20,245">
+ <attached>
+ <Model position="0,0,0" mesh="PacmanGhostRed.mesh" scale="5" />
+ </attached>
+</PacmanGhost>
+
+
<StaticEntity position="0,0,25" direction="0,0,0" collisionType=static mass=100000 friction=0.01 >
<attached>
<Model position="0,0,0" mesh="PacmanMap.mesh" scale="50" />
@@ -82,8 +90,8 @@
</collisionShapes>
</StaticEntity>
-<PortalEndPoint position="-240,10,0" id="1" distance="40" target="Pawn" design="PortalBig"/>
-<PortalEndPoint position="240,10,0" id="2" distance="40" target="Pawn" design="PortalBig"/>
+<PortalEndPoint position="-240,10,0" id="1" distance="40" target="Pawn"/>
+<PortalEndPoint position="240,10,0" id="2" distance="40" target="Pawn"/>
<PortalLink fromID="1" toID="2" />
<PortalLink fromID="2" toID="1" />
Modified: code/branches/3DPacman_FS18/src/modules/CMakeLists.txt
===================================================================
--- code/branches/3DPacman_FS18/src/modules/CMakeLists.txt 2018-03-29 14:04:35 UTC (rev 11842)
+++ code/branches/3DPacman_FS18/src/modules/CMakeLists.txt 2018-03-29 16:14:30 UTC (rev 11843)
@@ -48,3 +48,4 @@
ADD_SUBDIRECTORY(superorxobros)
ADD_SUBDIRECTORY(asteroids2D)
ADD_SUBDIRECTORY(flappyorx)
+ADD_SUBDIRECTORY(Pacman)
Added: code/branches/3DPacman_FS18/src/modules/Pacman/CMakeLists.txt
===================================================================
--- code/branches/3DPacman_FS18/src/modules/Pacman/CMakeLists.txt (rev 0)
+++ code/branches/3DPacman_FS18/src/modules/Pacman/CMakeLists.txt 2018-03-29 16:14:30 UTC (rev 11843)
@@ -0,0 +1,17 @@
+SET_SOURCE_FILES(PICKUP_SRC_FILES
+ PacmanGhost.cc
+)
+
+ORXONOX_ADD_LIBRARY(Pacman
+ MODULE
+ FIND_HEADER_FILES
+ TOLUA_FILES
+
+ PCH_FILE
+
+ LINK_LIBRARIES
+ orxonox
+ objects
+ pickup
+ SOURCE_FILES ${PICKUP_SRC_FILES}
+)
Added: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.cc
===================================================================
--- code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.cc (rev 0)
+++ code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.cc 2018-03-29 16:14:30 UTC (rev 11843)
@@ -0,0 +1,223 @@
+/*
+ * 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:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#include "PacmanGhost.h"
+
+#include "core/CoreIncludes.h"
+#include "BulletDynamics/Dynamics/btRigidBody.h"
+
+namespace orxonox
+{
+ RegisterClass(PacmanGhost);
+
+ /**
+ @brief
+ Constructor. Registers the object and initializes some default values.
+ @param creator
+ The creator of this object.
+ */
+ PacmanGhost::PacmanGhost(Context* context) : ControllableEntity(context)
+ {
+ RegisterObject(PacmanGhost);
+
+ this->localLinearAcceleration_.setValue(1, 1, 1);
+ this->localAngularAcceleration_.setValue(1, 1, 1);
+
+ this->velocity.setValue(1, 0, 0);
+
+ this->setCollisionType(CollisionType::Dynamic);
+
+ this->resetposition = Vector3(0,20,245); //Set Default start position
+
+ this->actuelposition = this->getPosition();
+
+ this->target_x = actuelposition.x;
+ this->target_z = actuelposition.z;
+
+ }
+
+ /**
+ @brief
+ Destructor. Destroys controller, if present.
+ */
+ PacmanGhost::~PacmanGhost()
+ {
+ // Deletes the controller if the object was initialized and the pointer to the controller is not NULL.
+ }
+
+ /**
+ @brief
+ Method for creating a AutonomousDrone through XML.
+ */
+ void PacmanGhost::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(PacmanGhost, XMLPort, xmlelement, mode);
+
+ XMLPortParam(PacmanGhost, "primaryThrust", setPrimaryThrust, getPrimaryThrust, xmlelement, mode);
+ XMLPortParam(PacmanGhost, "auxiliaryThrust", setAuxiliaryThrust, getAuxiliaryThrust, xmlelement, mode);
+ XMLPortParam(PacmanGhost, "rotationThrust", setRotationThrust, getRotationThrust, xmlelement, mode);
+ XMLPortParam(PacmanGhost, "resetposition", setResetPosition, getResetPosition, xmlelement, mode);
+ }
+
+
+
+ Vector3 possibleposition[] = {Vector3(0,10,245),Vector3(215,0,240)};
+
+ /**
+ @brief
+ Defines which actions the AutonomousDrone has to take in each tick.
+ @param dt
+ The length of the tick.
+ */
+ void PacmanGhost::tick(float dt)
+ {
+ SUPER(PacmanGhost, tick, dt);
+
+ this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxiliaryThrust_);
+ this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxiliaryThrust_);
+ if (this->localLinearAcceleration_.z() > 0)
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->auxiliaryThrust_);
+ else
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->primaryThrust_);
+ this->physicalBody_->applyCentralForce(physicalBody_->getWorldTransform().getBasis() * this->localLinearAcceleration_);
+ this->localLinearAcceleration_.setValue(0, 0, 0);
+
+ this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
+ this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
+ this->localAngularAcceleration_.setValue(0, 0, 0);
+
+
+ this->actuelposition = this->getPosition();
+
+ move();
+
+
+ /*
+
+ //Calculate next move
+
+ this->actuelposition = this->getPosition();
+
+ if(((this->actuelposition.x - this->target_x)<0.1) && ((this->actuelposition.z - this->target_z)<0.1)){
+ this->ismoving = false;
+ }
+
+ if(this->ismoving){
+ if(!((this->actuelposition.z-target_z)<0.1))
+ moveFrontBack(sgn(this->actuelposition.z-this->target_z)*dt*100);
+ if(!((this->actuelposition.x-target_x)<0.1))
+ moveRightLeft(sgn(this->actuelposition.x-this->target_x)*dt*100); //Assume dt is quite small
+ }
+
+ else{ //Check on which position ghost is
+ if(((this->actuelposition.x - possibleposition[0].x)<0.1) && ((this->actuelposition.z - possibleposition[0].z)<0.1)){
+ this->target_x = possibleposition[1].x;
+ this->target_z = possibleposition[1].z;
+ this->ismoving = true;
+ }
+ else if(((actuelposition.x - possibleposition[1].x)<0.1) && ((actuelposition.z - possibleposition[1].z)<0.1)){
+ this->target_x = possibleposition[0].x;
+ this->target_z = possibleposition[0].z;
+ this->ismoving = true;
+ }
+ else{
+ } //End of Position table
+ }
+ */
+ }
+
+
+
+
+ /**
+ @brief
+ Moves the AutonomousDrone in the negative z-direction (Front/Back) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void PacmanGhost::moveFrontBack(const Vector2& value)
+ {
+ this->setPosition(dt*(actuelposition + velocity_));
+ }
+
+ /**
+ @brief
+ Moves the AutonomousDrone in the x-direction (Right/Left) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void PacmanGhost::moveRightLeft(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() + value.x);
+ }
+
+ /**
+ @brief
+ Moves the AutonomousDrone in the y-direction (Up/Down) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void PacmanGhost::moveUpDown(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() + value.x);
+ }
+
+ /**
+ @brief
+ Rotates the AutonomousDrone around the y-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void PacmanGhost::rotateYaw(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() - value.x);
+ }
+
+ /**
+ @brief
+ Rotates the AutonomousDrone around the x-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void PacmanGhost::rotatePitch(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x);
+ }
+
+ /**
+ @brief
+ Rotates the AutonomousDrone around the z-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void PacmanGhost::rotateRoll(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setZ(this->localAngularAcceleration_.z() + value.x);
+ }
+
+}
Property changes on: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.cc
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.h
===================================================================
--- code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.h (rev 0)
+++ code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.h 2018-03-29 16:14:30 UTC (rev 11843)
@@ -0,0 +1,146 @@
+/*
+ * 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:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#ifndef _PacmanGhost_H__
+#define _PacmanGhost_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "core/XMLPort.h"
+
+#include "worldentities/ControllableEntity.h"
+
+namespace orxonox {
+
+ class _OrxonoxExport PacmanGhost : public ControllableEntity
+ {
+ public:
+ PacmanGhost(Context* context);
+ virtual ~PacmanGhost();
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating an AutonomousDrone through XML.
+ virtual void tick(float dt); //!< Defines which actions the AutonomousDrone has to take in each tick.
+
+ virtual void moveFrontBack(const Vector2& value);
+ virtual void moveRightLeft(const Vector2& value);
+ virtual void moveUpDown(const Vector2& value);
+
+ virtual void rotateYaw(const Vector2& value);
+ virtual void rotatePitch(const Vector2& value);
+ virtual void rotateRoll(const Vector2& value);
+
+ //virtual void resetGhost();
+ /**
+ @brief Moves the Drone in the Front/Back-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveFrontBack(float value)
+ { this->moveFrontBack(Vector2(value, 0)); }
+ /**
+ @brief Moves the Drone in the Right/Left-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveRightLeft(float value)
+ { this->moveRightLeft(Vector2(value, 0)); }
+ /**
+ @brief Moves the Drone in the Up/Down-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveUpDown(float value)
+ { this->moveUpDown(Vector2(value, 0)); }
+
+ /**
+ @brief Rotates the Drone around the y-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotateYaw(float value)
+ { this->rotateYaw(Vector2(value, 0)); }
+ /**
+ @brief Rotates the Drone around the x-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotatePitch(float value)
+ { this->rotatePitch(Vector2(value, 0)); }
+ /**
+ @brief Rotates the Drone around the z-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotateRoll(float value)
+ { this->rotateRoll(Vector2(value, 0)); }
+
+ /**
+ @brief Sets the primary thrust to the input amount.
+ @param thrust The amount of thrust.
+ */
+ inline void setPrimaryThrust( float thrust )
+ { this->primaryThrust_ = thrust; }
+ inline void setAuxiliaryThrust( float thrust )
+ { this->auxiliaryThrust_ = thrust; }
+ inline void setRotationThrust( float thrust )
+ { this->rotationThrust_ = thrust; }
+
+ inline void setResetPosition(Vector3 rpos)
+ { this->resetposition = rpos; }
+
+ /**
+ @brief Gets the primary thrust to the input amount.
+ @return The amount of thrust.
+ */
+ inline float getPrimaryThrust()
+ { return this->primaryThrust_; }
+ inline float getAuxiliaryThrust()
+ { return this->auxiliaryThrust_; }
+ inline float getRotationThrust()
+ { return this->rotationThrust_; }
+
+ inline Vector3 getResetPosition()
+ { return this->resetposition; }
+
+
+
+ private:
+
+ btVector3 localLinearAcceleration_; //!< The linear acceleration that is used to move the AutonomousDrone the next tick.
+ btVector3 localAngularAcceleration_; //!< The linear angular acceleration that is used to move the AutonomousDrone the next tick.
+ float primaryThrust_=100; //!< The amount of primary thrust. This is just used, when moving forward.
+ float auxiliaryThrust_=100; //!< The amount of auxilliary thrust. Used for all other movements (except for rotations).
+ float rotationThrust_=100; //!< The amount of rotation thrust. Used for rotations only.s
+ //Vector3 resetposition; //Start position for Ghost
+
+ PacmanGhost* myGhost = nullptr;
+
+ bool ismoving = false;
+ int target_x = 0;
+ int target_z = 0;
+ Vector3 actuelposition;
+ Vector3 velocity;
+ };
+
+}
+
+#endif
Property changes on: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhost.h
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.cc
===================================================================
--- code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.cc (rev 0)
+++ code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.cc 2018-03-29 16:14:30 UTC (rev 11843)
@@ -0,0 +1,122 @@
+/*
+ * 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:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#include "PacmanGhostController.h"
+
+#include "PacmanGhost.h"
+#include "util/Math.h"
+
+namespace orxonox
+{
+ // Create the factory for the drone controller.
+ RegisterClass(PacmanGhostController);
+
+ /**
+ @brief
+ Constructor.
+ @param context
+ The context of this object.
+ */
+ PacmanGhostController::PacmanGhostController(Context* context) : Controller(context)
+ {
+ RegisterObject(PacmanGhostController);
+
+ PacmanGhost* myGhost = nullptr;
+ this->actuelposition = myGhost.getPosition();
+
+ bool ismoving = false;
+ this->target_x = actuelposition.x;
+ this->target_z = actuelposition.z;
+ }
+
+ void PacmanGhostController::setGhost(PacmanGhost ghost){
+ this->myGhost = ghost;
+ }
+
+ /**
+ @brief
+ Destructor.
+ */
+ PacmanGhostController::~PacmanGhostController()
+ {
+
+ }
+
+
+ static Vector3[] possibleposition = [new Vector3(0,10,245), new Vector3(215,0,240)];
+ /**
+ @brief
+ The controlling happens here. This method defines what the controller has to do each tick.
+ @param dt
+ The duration of the tick.
+ */
+ void PacmanGhostController::tick(float dt)
+ {
+ /* NOTE: Ugly hack by Sandro to make the tutorial work for the moment.
+ * This will be reverted once the framework update is complete
+ */
+ //AutonomousDrone *myDrone = static_cast<AutonomousDrone*>(this->getControllableEntity());
+ ObjectList<PacmanGhost> objectList;
+ ObjectList<PacmanGhost>::iterator it = objectList.begin();
+ PacmanGhost* myDrone = *it;
+
+ if (this->myGhost != nullptr)
+ {
+
+ this->actuelposition = this->myGhost.getPosition();
+
+ if(((this->actuelposition.x - this->target_x)<0.1) && ((this->actuelposition.z - this->target_z)<0.1)){
+ this->ismoving = false;
+ }
+
+ if(this->ismoving){
+ if(!((this->actuelposition.z-target_z)<0.1))
+ moveFrontBack(sgn(this->actuelposition.z-this->target_z)*dt*100);
+ if(!((this->actuelposition.x-target_x)<0.1))
+ moveRightLeft(sgn(this->actuelposition.x-this->target_x)*dt*100); //Assume dt is quite small
+ }
+
+ else{ //Check on which position ghost is
+ if(((this->actuelposition.x - possibleposition[0].x)<0.1) && ((this->actuelposition.z - possibleposition[1].z)<0.1)){
+ this->target_x = possibleposition[1].x;
+ this->target_z = possibleposition[1].z;
+ this->ismoving = true;
+ }
+ else if(((actuelposition.x - possibleposition[0].x)<0.1) && ((actuelposition.z - possibleposition[1].z)<0.1)){
+ this->target_x = 0
+ this->target_z =
+ this->ismoving = true;
+ }
+ else{
+ }
+ } //End of Position table
+
+ }
+ }
+
+}
Property changes on: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.cc
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.h
===================================================================
--- code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.h (rev 0)
+++ code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.h 2018-03-29 16:14:30 UTC (rev 11843)
@@ -0,0 +1,54 @@
+/*
+ * 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:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#ifndef _PacmanGhostController_H__
+#define _PacmanGhostController_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "Controller.h"
+#include "tools/interfaces/Tickable.h"
+
+namespace orxonox
+{
+
+ class _OrxonoxExport PacmanGhostController : public Controller, public Tickable
+ {
+ public:
+ PacmanGhostController(Context* context);
+ virtual ~PacmanGhostController();
+
+ virtual void tick(float dt);
+
+ protected:
+
+ private:
+ };
+}
+
+#endif
Property changes on: code/branches/3DPacman_FS18/src/modules/Pacman/PacmanGhostController.h
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
More information about the Orxonox-commit
mailing list