bool Tank::shoot() { if (_cooldownLeft <= 0.0f) { _cooldownLeft = _cooldown; Vec2 fromPoint; Vec2 dir; getShootParams(fromPoint, dir); Projectile* proj = Shell::create(_game); proj->setPosition(fromPoint); Vec2 j = dir * _power; proj->getNode()->getPhysicsBody()->applyImpulse(j); _body->applyImpulse(_body->world2Local(Vec2::ZERO) - _body->world2Local(j)); return true; } else { return false; } }