diff options
Diffstat (limited to 'example/pong.cpp')
-rw-r--r-- | example/pong.cpp | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/example/pong.cpp b/example/pong.cpp index df91b53..2716fa7 100644 --- a/example/pong.cpp +++ b/example/pong.cpp @@ -7,93 +7,93 @@ class ball : public cObject { public: - ball() : v({1,1}) { setSize(1,1); drawPoint('O', {0,0}, _COL_RED); } - ~ball() { destruct(); } - virtual bool onCollisionActive(sPos _hit, int _passiveObject) - { - if(_passiveObject == 1) - v.y = v.y * (-1); - else if (_passiveObject == 2) - v.x = v.x * (-1); - - drawText(std::to_string(_passiveObject), {0,0}, _COL_GREEN); - return true; - } - sPos getV() { return v; } + ball() : v({1,1}) { setSize(1,1); drawPoint('O', {0,0}, ansi_color_fg(0,0,255) | ansi_color_bg(255,0,0)); } + ~ball() { destruct(); } + virtual bool onCollisionActive(sPos _hit, int _passiveObject) + { + if(_passiveObject == 1) + v.y = v.y * (-1); + else if (_passiveObject == 2) + v.x = v.x * (-1); + + //drawText(std::to_string(_passiveObject), {0,0}, _COL_GREEN); + return true; + } + sPos getV() { return v; } private: - sPos v; + sPos v; }; class bar : public cObject { public: - bar() { setSize(1,5); drawLine('|', {0,0},{0,4}, _COL_BLUE);} - ~bar() { destruct(); } - virtual int onCollisionPassive(sPos _hit){ return 2; } - virtual bool onCollisionActive(sPos _hit, int _passiveObject){ return true; } + bar() { setSize(1,5); drawLine('|', {0,0},{0,4}, _COL_BLUE);} + ~bar() { destruct(); } + virtual int onCollisionPassive(sPos _hit){ return 2; } + virtual bool onCollisionActive(sPos _hit, int _passiveObject){ return true; } }; class edge : public cObject { public: - edge(unsigned int x, unsigned int y) { setSize(x,y); drawLine('#', {0,0},{(int)x-1,(int)y-1}, _COL_DEFAULT);} - ~edge() { destruct(); } - virtual int onCollisionPassive(sPos _hit) - { - if(getSize().x > getSize().y) - return 1; - else - return 2; - } + edge(unsigned int x, unsigned int y) { setSize(x,y); drawLine('#', {0,0},{(int)x-1,(int)y-1}, _COL_DEFAULT);} + ~edge() { destruct(); } + virtual int onCollisionPassive(sPos _hit) + { + if(getSize().x > getSize().y) + return 1; + else + return 2; + } }; int main() { - cRender render(' ', _COL_DEFAULT); - cObjectHandler screen(&render); - cInput input; + cRender render(' ', _COL_DEFAULT); + cObjectHandler screen(&render); + cInput input; - render.render(); - render.setTargetFPS(20); + render.render(); + render.setTargetFPS(20); - sPos size = render.getSize(); + sPos size = render.getSize(); - bar barLeft; - bar barRight; - ball aball; - edge edgeLeft(1,size.y - 2); - edge edgeRight(1,size.y - 2); - edge edgeTop(size.x - 2,1); - edge edgeBottom(size.x - 2,1); + bar barLeft; + bar barRight; + ball aball; + edge edgeLeft(1,size.y - 2); + edge edgeRight(1,size.y - 2); + edge edgeTop(size.x - 2,1); + edge edgeBottom(size.x - 2,1); - int iEdgeTop = screen.createObject(&edgeTop); - screen.moveObject(iEdgeTop, {0,0}, _MOVE_FORCE_ABSOLUTE); + int iEdgeTop = screen.createObject(&edgeTop); + screen.moveObject(iEdgeTop, {0,0}, _MOVE_FORCE_ABSOLUTE); - int iEdgeBottom = screen.createObject(&edgeBottom); - screen.moveObject(iEdgeBottom, {0,size.y - 3}, _MOVE_FORCE_ABSOLUTE); + int iEdgeBottom = screen.createObject(&edgeBottom); + screen.moveObject(iEdgeBottom, {0,size.y - 3}, _MOVE_FORCE_ABSOLUTE); - int iEdgeLeft = screen.createObject(&edgeLeft); - screen.moveObject(iEdgeLeft, {0,0}, _MOVE_FORCE_ABSOLUTE); + int iEdgeLeft = screen.createObject(&edgeLeft); + screen.moveObject(iEdgeLeft, {0,0}, _MOVE_FORCE_ABSOLUTE); - int iEdgeRight = screen.createObject(&edgeRight); - screen.moveObject(iEdgeRight, {size.x - 2,0}, _MOVE_FORCE_ABSOLUTE); + int iEdgeRight = screen.createObject(&edgeRight); + screen.moveObject(iEdgeRight, {size.x - 2,0}, _MOVE_FORCE_ABSOLUTE); - int iAball= screen.createObject(&aball); - screen.moveObject(iAball, {size.x/2,size.y/2}, _MOVE_FORCE_ABSOLUTE); + int iAball= screen.createObject(&aball); + screen.moveObject(iAball, {size.x/2,size.y/2}, _MOVE_FORCE_ABSOLUTE); - unsigned int iBarLeft = screen.createObject(&barLeft); - screen.moveObject(iBarLeft, {10,4}, _MOVE_FORCE_ABSOLUTE); + unsigned int iBarLeft = screen.createObject(&barLeft); + screen.moveObject(iBarLeft, {10,4}, _MOVE_FORCE_ABSOLUTE); - unsigned int iBarRight = screen.createObject(&barRight); - screen.moveObject(iBarRight, {size.x - 10,4}, _MOVE_FORCE_ABSOLUTE); + unsigned int iBarRight = screen.createObject(&barRight); + screen.moveObject(iBarRight, {size.x - 10,4}, _MOVE_FORCE_ABSOLUTE); - unsigned int cc = 0; + unsigned int cc = 0; - while(1) - { - sInputEvent ie = input.poll(); + while(1) + { + sInputEvent ie = input.poll(); if(ie.type != _EVENT_NULL) { @@ -124,22 +124,22 @@ int main() break; case 's': screen.moveObject(iBarLeft, {0,1}, _MOVE_RELATIVE); - break; - case 'g': - render.enableDebugInfo(true); + break; + case 'g': + render.enableDebugInfo(true); }; } else if (ie.type == _EVENT_TERM) { return 0; } - } - if(!(++cc % 3)) - screen.moveObject(iAball, aball.getV(), _MOVE_RELATIVE); + } + if(!(++cc % 3)) + screen.moveObject(iAball, aball.getV(), _MOVE_RELATIVE); - screen.write(); - render.render(); - } + screen.write(); + render.render(); + } - return 0; + return 0; } |