From 2c12d19204aa198bf8537bcdb137b40f0c7317e9 Mon Sep 17 00:00:00 2001 From: Jonas Gunz Date: Sun, 25 Sep 2016 18:38:34 +0200 Subject: Initial --- AmpelJonas/cObjectHandler.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 AmpelJonas/cObjectHandler.cpp (limited to 'AmpelJonas/cObjectHandler.cpp') diff --git a/AmpelJonas/cObjectHandler.cpp b/AmpelJonas/cObjectHandler.cpp new file mode 100644 index 0000000..a5c5884 --- /dev/null +++ b/AmpelJonas/cObjectHandler.cpp @@ -0,0 +1,63 @@ +#include "cObjectHandler.h" + +cObjectHandler::cObjectHandler(cRender *_render) +{ + render = _render; +} + +int cObjectHandler::createObject(cObject *_object) +{ + objects.push_back(_object); + return objects.size() - 1; +} + +int cObjectHandler::moveObject(int _object, sPos _pos, int _mode) +{ + if (_object >= objects.size()) //prevent segmentation faults + return 1; + + if (!objects[_object]) + return 1; + + sPos objPosition = objects[_object]->getPosition(); + + if (_mode == _MOVE_RELATIVE) + objects[_object]->setPosition(sPos{ objPosition.x + _pos.x, objPosition.y + _pos.y }); + else if (_mode == _MOVE_ABSOULUTE) + objects[_object]->setPosition(_pos); + + return 0; +} + +int cObjectHandler::destroyObject(int _object) +{ + delete objects[_object]; + objects[_object] = NULL; + + return 0; +} + +int cObjectHandler::write() +{ + render->clear(); + + for (int i = 0; i < objects.size(); i++) + { + if (objects[i]) // Check if objects[i] is existent + { + //Draw every Object + sObject obj = objects[i]->getObject(); //get Object #i + + for (int o = 0; o < obj.sizeY; o++) { //y axis + for (int p = 0; p < obj.sizeX; p++) { //x axis + if (obj.cScreen[p][o]) { //Dont overwrite empty pixels + sPos pos{ obj.pos.x + p, obj.pos.y + o }; + render->drawPoint(obj.cScreen[p][o], pos, true, obj.wColor[p][o]); + } + } + } + } + } + + return 0; +} \ No newline at end of file -- cgit v1.2.3