to zastanawiam się nad 'dobrym' rozwiązaniem problemu :
mam vector<vector<tail>> (moja mapa gry) i moja mapa ma powiedzmy wysokość 10 szerokość 1000
i teraz przykładowy przypadek cała ta macierz to kawałek mapy który się mieści w view:
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][0][1][1][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[0][0][0][0][3][0][2][0][3][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]
[1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1]
0 - pusty kafel
1 - ground
2 - player
3 - enemy
i teraz pytanie : mam sprawdzać kolizję z otoczeniem, tylko to i tak muszę wszystkie kafle sprawdzić, czy nie są blisko playera ... np
for( int i = 0; i < vector.size(); i++ ) {
for( int j = 0; j < vector[ i ].size(); j++ ) {
if( vector[ i ][ j ].chceckIfTailIsCloseToPlayer )
player.collision( vector[ i ][ j ] );
}
}
analogicznie do vectora enemy muszę prześć przez cały wektor i sprawdzać czy są blisko player z enemy...
dodatkowe pytanie sprawdzenie czy tail lub enemy jest blisko playera to jest prosty if który sprowadza się do tak naprawdę do sprawdzenia kolizji typu kwadrat z kwadratem,
potem jeżeli taka kolizja zachodzi to można sprawdzać ewentualnie pixel perfect collision.
czy jest na to nakiś lepszy sposób ??