From 98ba22e7064db57316dfff1ae127feb3dceeb73e Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Thu, 31 Jul 2014 13:58:22 +0200 Subject: Initial commit --- docs/html/_player_car_8cpp_source.html | 194 +++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 docs/html/_player_car_8cpp_source.html (limited to 'docs/html/_player_car_8cpp_source.html') diff --git a/docs/html/_player_car_8cpp_source.html b/docs/html/_player_car_8cpp_source.html new file mode 100644 index 0000000..b82ee16 --- /dev/null +++ b/docs/html/_player_car_8cpp_source.html @@ -0,0 +1,194 @@ + + + + +Rally X: source/logic/PlayerCar.cpp Source File + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + +
+
Rally X + +
+
ELEN3009 Project by Justin Wernick and David Schneider
+
+
+ + + + + +
+
+
source/logic/PlayerCar.cpp
+
+
+Go to the documentation of this file.
00001 #include "PlayerCar.h"
+00002 
+00003 PlayerCar::PlayerCar(double x, double y, Maze::Direction facing)
+00004     :Car(x,y,BitmapStore::PLAYER, facing),
+00005     _input(_facing),
+00006     _petrol(1)
+00007 {
+00008 }
+00009 
+00010 void PlayerCar::update(const Maze& maze, list<Smokescreen>& currentSmoke)
+00011 {
+00012     _petrol -= PETROL_USE_RATE;
+00013     if (_petrol<0)
+00014     {
+00015         _speed = _baseSpeed/2;
+00016         _petrol = 0;
+00017     }
+00018 
+00019     _facing = _input.getFacing();
+00020     move(maze);
+00021 
+00022     if (_input.getSmokescreen())
+00023     {
+00024         makeSmoke(currentSmoke);
+00025     }
+00026 }
+00027 
+00028 void PlayerCar::makeSmoke(list<Smokescreen>& currentSmoke)
+00029 {
+00030     if (_petrol < PETROL_USE_SMOKESCREEN) return;
+00031 
+00032     double targetX = 0;
+00033     double targetY = 0;
+00034 
+00035     switch(_facing)
+00036     {
+00037         case Maze::UP:
+00038             targetX = round(_x);
+00039             targetY = round(_y+1);
+00040             break;
+00041         case Maze::DOWN:
+00042             targetX = round(_x);
+00043             targetY = round(_y-1);
+00044             break;
+00045         case Maze::LEFT:
+00046             targetX = round(_x+1);
+00047             targetY = round(_y);
+00048             break;
+00049         case Maze::RIGHT:
+00050             targetX = round(_x-1);
+00051             targetY = round(_y);
+00052             break;
+00053     }
+00054 
+00055     bool overlap = false;
+00056 
+00057     for (list<Smokescreen>::const_iterator iter = currentSmoke.begin(); iter!=currentSmoke.end(); ++iter)
+00058     {
+00059         if ((abs(iter->x() - targetX)<1)&&(abs(iter->y() - targetY)<1))
+00060         {
+00061             overlap = true;
+00062             break;
+00063         }
+00064     }
+00065 
+00066     if (!overlap)
+00067     {
+00068         currentSmoke.push_back(Smokescreen(targetX, targetY));
+00069         _petrol -= PETROL_USE_SMOKESCREEN;
+00070     }
+00071 }
+00072 
+00073 void PlayerCar::crash()
+00074 {
+00075     _destroyed = true;
+00076 }
+00077 
+00078 void PlayerCar::gotCheckpoint()
+00079 {
+00080     _petrol+=PETROL_FROM_CHECKPOINT;
+00081     _speed = _baseSpeed;
+00082 }
+00083 
+00084 double PlayerCar::petrol() const
+00085 {
+00086     return _petrol;
+00087 }
+
+
+ +
+ All Classes Files Functions Variables Typedefs Enumerations Enumerator
+ + +
+ +
+ + + + + + + -- cgit v1.2.3