[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 » |