ID
Size: a a a
ДM
void Bullet::playBullet(sf::RenderWindow* window,Character* character, Level* level,double dt)
{
for (int i = 0; i < bullets.size(); i++)
{
bullets[i].sprite.move(bullets[i].speed * bullets[i].forward.x * dt, bullets[i].speed * bullets[i].forward.y * dt);
if (window != nullptr)
{
double hCharacterShuriken = generalStuff::makeDistance(character->getSprite().getPosition() - bullets[i].sprite.getPosition());
if (hCharacterShuriken <= generalStuff::getLOD())
window->draw(bullets[i].sprite);
}
if (bullets[i].lifeTime.delay(3)==true)
{
bullets.erase(bullets.begin() + i);
}
else if (bullets[i].sprite.getGlobalBounds().intersects(character->getSprite().getGlobalBounds()) && bullets[i].initiator != character && character->className() != bullets[i].initiator->className())
{
character->takeDamage(bullets[i].damage);
}
else if (level != nullptr)
{
for (int j = 0; j < level->getObjects().size(); j++)
{
if (makeDistance(level->getObjects()[j].getSprite().getPosition() - bullets[i].sprite.getPosition()) <= level->getObjects()[j].getDiagonal() + bullets[i].getRad())
{
if ((bullets[i].sprite.getGlobalBounds().intersects(level->getObjects()[j].getRect())))
{
bullets.erase(bullets.begin() + i);
}
}
}
}
}
}
К
void Bullet::playBullet(sf::RenderWindow* window,Character* character, Level* level,double dt)
{
for (int i = 0; i < bullets.size(); i++)
{
bullets[i].sprite.move(bullets[i].speed * bullets[i].forward.x * dt, bullets[i].speed * bullets[i].forward.y * dt);
if (window != nullptr)
{
double hCharacterShuriken = generalStuff::makeDistance(character->getSprite().getPosition() - bullets[i].sprite.getPosition());
if (hCharacterShuriken <= generalStuff::getLOD())
window->draw(bullets[i].sprite);
}
if (bullets[i].lifeTime.delay(3)==true)
{
bullets.erase(bullets.begin() + i);
}
else if (bullets[i].sprite.getGlobalBounds().intersects(character->getSprite().getGlobalBounds()) && bullets[i].initiator != character && character->className() != bullets[i].initiator->className())
{
character->takeDamage(bullets[i].damage);
}
else if (level != nullptr)
{
for (int j = 0; j < level->getObjects().size(); j++)
{
if (makeDistance(level->getObjects()[j].getSprite().getPosition() - bullets[i].sprite.getPosition()) <= level->getObjects()[j].getDiagonal() + bullets[i].getRad())
{
if ((bullets[i].sprite.getGlobalBounds().intersects(level->getObjects()[j].getRect())))
{
bullets.erase(bullets.begin() + i);
}
}
}
}
}
}
ДM
ДM