Library for 3.2'' uLcd Picaso Display4D system Picaso Serial Environment Command Set web: http://www.4dsystems.com.au/product/20/67/Processors_Graphics/PICASO/
Sprite.cpp
- Committer:
- adelino
- Date:
- 2015-04-05
- Revision:
- 1:a74e42cf52b2
File content as of revision 1:a74e42cf52b2:
#include "Sprite.h" Sprite::Sprite(Screen* mScreen,UINT16 _id,UINT16 _x,UINT16 _y,UINT16 _w,UINT16 _h,Color _color): Widget(mScreen,_id,_x,_y,_w,_h,_color) { myIsUpdateAutomatic=true; myXMoveMin=myScreen->getXpos(); myYMoveMin=myScreen->getYpos(); myXMoveMax=myXMoveMin+myScreen->getWidth(); myYMoveMax= myYMoveMin+myScreen->getHeight(); mySpeedX=0.0; mySpeedY=0.0; } //------------------------------------- Sprite::~Sprite(void) { } //------------------------------------- void Sprite::setUpdateAutomatic(bool _state) { myIsUpdateAutomatic=_state; } //--------------------------------------- bool Sprite::getUpdateAutomatic(void) const { return this->myIsUpdateAutomatic; } //------------------------------------- bool Sprite::overlapWith(Sprite* pObj) { return overlap(this,pObj); } //------------------------------------- bool Sprite::overlap(Sprite* pObj1,Sprite* pObj2) { UINT16 x1=pObj1->getXposition(); UINT16 x2=pObj2->getXposition(); UINT16 y1=pObj1->getYposition(); UINT16 y2=pObj2->getYposition(); UINT16 xa=pObj1->getXposition()+pObj1->getWidth(); UINT16 xb=pObj2->getXposition()+pObj2->getWidth(); UINT16 ya=pObj1->getYposition()+pObj1->getHeight(); UINT16 yb=pObj2->getYposition()+pObj2->getHeight(); // if(x1 <xb && xa>x2 && y1<yb && ya>y2) { return true; } else { return false; } } //------------------------------------- void Sprite::elementUpdate(void) { switch(myState) { // case BUMP_DOWN: setInvertSpeedY(); myState=STATE_ON; break; // case BUMP_LEFT: setInvertSpeedX(); myState=STATE_ON; break; // case BUMP_RIGHT: setInvertSpeedX(); myState=STATE_ON; break; // case BUMP_UP: setInvertSpeedY(); myState=STATE_ON; break; // case STATE_OFF: break; // default: break; } // } //------------------------------------- void Sprite::draw(void) { //to do } //---------------------------------------- float Sprite::getSpeedX(void) const { return this->mySpeedX; } //---------------------------------------- float Sprite::getSpeedY(void) const { return this->mySpeedY; } //---------------------------------------- void Sprite::setInvertSpeedX(void) { mySpeedX=-(this->mySpeedX); } //---------------------------------------- void Sprite::setInvertSpeedY(void) { mySpeedY=-(this->mySpeedY); } //---------------------------------------- void Sprite::setSpeedX(float _speedX) { mySpeedX=_speedX; } //---------------------------------------- void Sprite::setSpeedY(float _speedY) { mySpeedY=_speedY; } //---------------------------------------- void Sprite::setSpeedXY(float _speedX,float _speedY) { mySpeedX=_speedX; mySpeedY=_speedY; }