Example #1
0
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;
    }
}