Laser::Laser(ResourceManager& a_ResMgr, cpSpace& a_Space, sf::Vector2f a_StartPos, sf::Vector2f a_FacingDir) : GameObject(a_ResMgr, a_Space) , m_pPreviousSegment(NULL) , m_pNextChainSegment(NULL) , m_StartPos(a_StartPos) , m_EndPos(a_StartPos) , m_CurLength(0) , m_MaxLength(MAX_LASER_DIST) , m_Space(a_Space) , m_FacingDir(a_FacingDir) , m_pAnimator(NULL) , m_endDrawn(false) , m_endDrawnHack(false) , m_won(false) , m_laserBlocked(false) //, m_catcherPositions(NULL) { MyType = LASER; m_resMgr.CreateSprite("media/laser_middle_8x8.png", &m_Sprite); m_resMgr.CreateSprite("media/End_laser_32x32.png", &m_endSprite); m_resMgr.CreateSprite("media/laser_bounce_8x8.png", &m_reflectSprite); m_pAnimator = new Animator(m_endSprite, 32, 32, 3, 8, 10, 24); m_Sprite.sprite->setPosition(a_StartPos); m_Sprite.sprite->setOrigin(0,4); m_Sprite.sprite->setRotation(VectorToAngle(m_FacingDir)); }
void Laser::SetFacingDir(sf::Vector2f a_NewDir) { m_FacingDir = a_NewDir; /* m_resMgr.CreateSprite("media/laser_middle_8x8.png", &m_Sprite); m_resMgr.CreateSprite("media/End_laser_32x32.png", &m_endSprite); m_resMgr.CreateSprite("media/laser_bounce_8x8.png", &m_reflectSprite); m_pAnimator = new Animator(m_endSprite, 32, 32, 3, 8, 10, 24); m_Sprite.sprite->setPosition(a_StartPos); m_Sprite.sprite->setOrigin(0,4); m_Sprite.sprite->setRotation(VectorToAngle(m_FacingDir)); */ m_Sprite.sprite->setRotation(VectorToAngle(m_FacingDir)); m_endSprite.sprite->setRotation(VectorToAngle(m_FacingDir)); }
Laser::Laser(ResourceManager& a_ResMgr, cpSpace& a_Space, sf::Vector2f a_StartPos, sf::Vector2f a_FacingDir) : GameObject(a_ResMgr, a_Space) , m_pPreviousSegment(NULL) , m_pNextChainSegment(NULL) , m_StartPos(a_StartPos) , m_EndPos(a_StartPos) , m_CurLength(0) , m_MaxLength(MAX_LASER_DIST) , m_Space(a_Space) , m_FacingDir(a_FacingDir) , m_pAnimator(NULL) , m_endDrawn(false) , m_endDrawnHack(false) , m_won(false) //, m_catcherPositions(NULL) { MyType = LASER; m_resMgr.CreateSprite("media/laser_middle_8x8.png", &m_Sprite); m_resMgr.CreateSprite("media/End_laser_32x32.png", &m_endSprite); m_resMgr.CreateSprite("media/laser_bounce_8x8.png", &m_reflectSprite); m_pAnimator = new Animator(m_endSprite, 32, 32, 3, 8, 10, 24); m_Sprite.sprite->setPosition(a_StartPos); m_Sprite.sprite->setOrigin(0,4); m_Sprite.sprite->setRotation(VectorToAngle(m_FacingDir)); // //create the physbody /* cpFloat radius = 32; cpFloat mass = 1; cpFloat moment = cpMomentForCircle(mass, radius, 0, cpv(0,0)); m_pBody = cpSpaceAddBody(&a_Space, cpBodyNew(mass, moment)); m_pBody->data = this; cpBodySetPos(m_pBody, cpv(a_StartPos.x, a_StartPos.y)); m_pShape = cpSpaceAddShape(&a_Space, cpCircleShapeNew(m_pBody, radius, cpv(0,0))); m_pShape->data = this; m_pShape->sensor = 1; cpShapeSetCollisionType(m_pShape, LASER); */ }