From 2c12d19204aa198bf8537bcdb137b40f0c7317e9 Mon Sep 17 00:00:00 2001 From: Jonas Gunz Date: Sun, 25 Sep 2016 18:38:34 +0200 Subject: Initial --- AmpelJonas/cPeasant.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 AmpelJonas/cPeasant.cpp (limited to 'AmpelJonas/cPeasant.cpp') diff --git a/AmpelJonas/cPeasant.cpp b/AmpelJonas/cPeasant.cpp new file mode 100644 index 0000000..280c16f --- /dev/null +++ b/AmpelJonas/cPeasant.cpp @@ -0,0 +1,51 @@ +#include "cPeasant.h" + +cPeasant::cPeasant(int _direction, int *_phase) +{ + pPhase = _phase; + iDirection = _direction; + pe = new cObject(1, 1); + pe->drawPoint(203, sPos{0,0}, true, _COL_YELLOW); + + switch (iDirection) + { + case _PE_DIR_NORTH: + pe->setPosition(_SIZE_X_ / 2 - 7, -1); + break; + case _PE_DIR_WEST: + pe->setPosition(-1, _SIZE_Y_ / 2 - 5); + break; + } +} + +cPeasant::~cPeasant() +{ + delete pe; +} + +cObject *cPeasant::getObject() +{ + return pe; +} + +void cPeasant::run() +{ + sPos oldPos = pe->getPosition(); + switch (iDirection) + { + case _PE_DIR_NORTH: + if(!(oldPos.y == _SIZE_Y_ / 2 - 5 && *pPhase != -1)) + pe->setPosition(oldPos.x, oldPos.y + 1); + + if(oldPos.y > _SIZE_Y_) + pe->setPosition(oldPos.x, -1); + break; + case _PE_DIR_WEST: + if (!(oldPos.x == _SIZE_X_ / 2 - 7 && *pPhase != 4)) + pe->setPosition(oldPos.x + 1, oldPos.y); + + if(oldPos.x > _SIZE_X_) + pe->setPosition(-1, oldPos.y); + break; + } +} \ No newline at end of file -- cgit v1.2.3