Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

kolizja koła z prostokątem - tower defense

Ostatnio zmodyfikowano 2017-11-10 17:37
Autor Wiadomość
DejaVu
» 2017-11-04 09:37:46
Jeżeli chcesz obejmować 'nogi' to po prostu dodaj promień zasięgu + wysokość kwadratu podzieloną przez 2. Wówczas nogi też obejmiesz.

/edit:
W każdym razie odpowiedzią na Twoje pytanie zapewne jest metoda:
C/C++
bool Tower::isInRange( const std::shared_ptr < Enemy >& _enemy ) const
{
    return ddt::core::Math::distanceSquare( m_position, _enemy->getPosition() ) < float( m_pxRange ) * m_pxRange;
}
P-166448
latajacaryba
Temat założony przez niniejszego użytkownika
» 2017-11-04 19:26:01
Problem w tym, że to nie kwadrat, ale prostokąt.
To oznacza, że ten pomysł nie zawsze będzie działał, np przypadek poniżej:
https://zapodaj.net​/c56e8fb99b5e4.png.html

czerwony - faktyczny zasięg
niebieski - faktyczny zasięg + h/2
P-166473
DejaVu
» 2017-11-05 18:35:07
Z punktu widzenia rozgrywki problem, który opisujesz będzie niezauważalny. Poza tym i tak najwygodniej się robi kolizje na okręgach. Mało zachodu i stosunkowo wysoka precyzja w ogólnym przypadku.
P-166504
RazzorFlame
» 2017-11-10 17:37:44
Tutaj wystarczy sprawdzić czy zasięg wieży dosięga do któregos z czterech wierzchołków.
P-166677
1 « 2 »
Poprzednia strona Strona 2 z 2