ДС
Size: a a a
ДС
LA
CD
"a"
A
LA
LA
CD
"a"
?ДС
LA
MK
CD
ДС
MK
MK
ДM
Д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);
}
}
}
}
}
}
T
CD
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);
}
}
}
}
}
}
character->getSprite
LA
ДM
character->getSprite