void Bullet::setSprite(ResourceManager &resource, std::string const &name) { if (this->_sprite) delete this->_sprite; this->_sprite = resource.getSprite(name); if (this->_sprite) this->_sprite->setRotation(rtod(atan2(_vy, _vx))); }
AnimatedSprite *AnimatedSprite::load(const std::string &filename, int variant) { ResourceManager *resman = ResourceManager::getInstance(); SpriteDef *s = resman->getSprite(filename, variant); if (!s) return NULL; AnimatedSprite *as = new AnimatedSprite(s); s->decRef(); return as; }
Bullet::Bullet(ResourceManager &resource, std::string const & sprite, HitBox &box, double vx, double vy, double xHitboxOffset, double yHitboxOffset) : PhysicObject(box, vx, vy, xHitboxOffset, yHitboxOffset), _sprite(0), _parent(0), _bulletId(0), _life(1), _damage(1) { try { this->_sprite = resource.getSprite(sprite); if (this->_sprite) this->_sprite->setRotation(rtod(atan2(vy, vx))); } catch (...) { std::cerr << "Sprite \"" << sprite << "\" not found" << std::endl; } }