Mam pewien problem. Od dłuższego czasu wykonuje niestworzone rzeczy żeby złapać błąd i nie mogę ...
Animate() - Ustala wartość zmiennej (mojego) typu CVector ({float x, float y}) - move.
A potem albo następuje kolizja, albo następuje ruch ( x+move.x, y+move.y)
void CEngineMain::ColizionSystem(){
if(layer[9]){
for(int i=0;i<50;i++){
if(layer[9]->objects[i])layer[9]->objects[i]->Animate();
}
for(int i=0;i<5;i++){
if(layer[9]->objectsM[i])layer[9]->objectsM[i]->Animate();
}
bool end=false;
for(int i=0;i<5;i++){
for(int a=0;a<50;a++){
if(layer[9]->objectsM[i] && layer[9]->objects[a]){
if(layer[9]->objectsM[i]->move.x==0 && layer[9]->objectsM[i]->move.y==0){
}
else{
if(a==0 && i==0)aa=layer[9]->objectsM[0]->move.x;
if(layer[9]->objectsM[i]->x + layer[9]->objectsM[i]->move.x > layer[9]->objects[a]->x - 1.0*layer[9]->objects[a]->width && layer[9]->objectsM[i]->x + layer[9]->objectsM[i]->move.x < layer[9]->objects[a]->x + 1.0*layer[9]->objects[a]->width){
if(layer[9]->objectsM[i]->y + layer[9]->objectsM[i]->move.y > layer[9]->objects[a]->y - 1.0*layer[9]->objects[a]->height && layer[9]->objectsM[i]->y + layer[9]->objectsM[i]->move.y < layer[9]->objects[a]->y + 1.0*layer[9]->objects[a]->height){
layer[9]->objects[a]->Colizion(layer[9]->objectsM[i]);
end=true;
}
}
if(!end){
layer[9]->objectsM[i]->x+=layer[9]->objectsM[i]->move.x;
layer[9]->objectsM[i]->y+=layer[9]->objectsM[i]->move.y;
layer[9]->objectsM[i]->move.x=0;
layer[9]->objectsM[i]->move.y=0;
}
}
}
end=false;
}
}
}
}
Z góry dzięki za pomoc