Closed rgjvanriel closed 8 years ago
Ik weet niet waarom maar in jou branch lijken de bullets te colliden met sensors. Deze sensors zijn juist bedoelt om wel de collide mee te detecteren maar niet daadwerkelijk mee te colliden.
Enemies kunnen inderdaad worden geraakt en worden dan verwijderd. Zou cool zijn als we hier dan een explosie overleggen : P
Sensor probleem bestaat inderdaad.
Ik heb het zo opgelost bij mij:
void Bullet::startContact(b2Fixture * fixture)
{
GameObject* pal = static_cast<Player*>(fixture->GetBody()->GetUserData());
if (!dynamic_cast<Player*> (pal) && !fixture->IsSensor()) {
Destroy();
}
}
Dit zit er nu:
```c++
void Bullet::startContact(b2Fixture * fixture)
{
GameObject* pal = static_cast<Player*>(fixture->GetBody()->GetUserData());
if (dynamic_cast<Player*> (pal))
{
if (dynamic_cast<Player*> (pal)->GetGodMode())
{
return;
}
}
if (dynamic_cast<Unit*> (pal))
{
Unit* enemy = dynamic_cast<Unit*> (pal);
enemy->Damage(this->damage);
}
Destroy();
}
Op deze manier zou het dus moeten werken.
```c++
void Bullet::startContact(b2Fixture * fixture)
{
GameObject* pal = static_cast<Player*>(fixture->GetBody()->GetUserData());
if (fixture->IsSensor())
return
if (dynamic_cast<Player*> (pal))
{
if (dynamic_cast<Player*> (pal)->GetGodMode())
{
return;
}
}
if (dynamic_cast<Unit*> (pal))
{
Unit* enemy = dynamic_cast<Unit*> (pal);
enemy->Damage(this->damage);
}
Destroy();
}
Het gedeelte van de player moet dan natuurlijk even weg.
Enemy kan geraakt worden door kogels. Als de enemy geraakt wordt gaat er HP af. Als de enemy onder of gelijk is aan de 0 HP wordt deze verwijdert.