[SFML 2.0] Kolizja
Ostatnio zmodyfikowano 2013-07-15 12:17
kubawal Temat założony przez niniejszego użytkownika |
[SFML 2.0] Kolizja » 2013-07-15 11:24:06 Witam! Dziś znowu coś mi nie działa :|. Mianowicie: kolizja. Program wykrywa kolizje z obiektami na innych pozycjach, niż są, i usuwa wszystkie. Kod: Objects.h: inline bool Collision( IntRect i1, IntRect i2 ) { return i1.intersects( i2 ); }
inline bool Collision( Sprite & s1, Sprite & s2 ) { return Collision( s1.getTextureRect(), s2.getTextureRect() ); }
class Plane { Sprite sp; Map & map; void Psychics(); };
struct Map { vector < Object *> objs; };
struct Object { Sprite sp; };
Objects.cpp: void Plane::Psychics() { for( int i = 0; i < map.objs.size(); i++ ) { if( Collision( map.objs[ i ]->sp, sp ) ) { cout << "Kolizja z " << map.objs[ i ] << endl; delete map.objs[ i ]; map.objs.erase( map.objs.begin() + i ); } } }
Co tu jest nie tak? Pewnie ktoś znowu znajdzie banalne rozwiązanie tego problemu, lecz ja go na razie nie widzę ;(. |
|
pekfos |
» 2013-07-15 11:33:26 Wiesz w ogóle, co robi getTextureRect()? Powinieneś raczej użyć getGlobalBounds(). |
|
kubawal Temat założony przez niniejszego użytkownika |
» 2013-07-15 12:17:42 Po zmianie na getGlobalBounds() działa. |
|
« 1 » |