allegro kolizje

Odpowiedz Nowy wątek
2011-09-25 12:12
Mateusz
0

a więc napisałem kolizje i mój problem jest taki że gdy program wykryje kolizje to ma odpychac ludzika no i tak też robi ale niekiedy robi tak ze jak nacine prawy kursor i jest kolizja i wtedy nacisne lewy zeby odunac sie od obiektu to czasami ludzik zawraca przechodzi przez obiekt na ktorym jest kolizja i przechodzi na lewa strone tak jest ze wszystkimi kierunkami


if( kolizja( ludek_x,ludek_y,ludek_s, ludek_w, postac_x- mapa_x, postac_y-mapa_y, postac_s, postac_w)==true)
{ if (key[KEY_RIGHT]) {ludek_x-=2;} 
  if (key[KEY_LEFT]){ludek_x+=2;}  
  if (key[KEY_DOWN]){ludek_y-=2;} 
  if (key[KEY_UP]){ludek_y+=2;} 
}
edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-09-25 12:33
0

Pomogę jak wytłumaczysz poprawnie gramatycznie w jęz. polskim, bo teraz z tej jednozdaniowej wypowiedzi to nic nie zrozumiałem.

BTW. W jakim ty układzie współrzędnych działasz skoro strzałka w prawo odejmuje wartość na osi X czyli się cofa?


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 1x, ostatnio: xeo545x39, 2011-09-25 12:44

Pozostało 580 znaków

2011-09-25 13:02
Mateusz
0

to jest kolizja zeby mi nie przechodzil ludzik przez obiekt to musze go minusowac. A wiec do rzeczy kiedy pochodze do obiektu i mam np wcisniety prawy kursor to kolizja dziala i odpycha moja postac. Lecz czasami gdy mam wcisniety prawy przycisk i kolizja sie spelni i chce aby ludzik sie odsunal od obiektu to naciskam lewy kursor. No i przejdzmy do meritum gdy naciskam ten lewy to ludzik zamiast isc w lewo przechodzi mi przez obiekt na druga strone . I problem w tym zeby mi tego nie robil

Pozostało 580 znaków

2011-09-25 13:09
0

Pokaż no jeszcze tą funkcję "kolizja".


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał

Pozostało 580 znaków

2011-09-25 13:12
Mateusz
0
 bool kolizja( float x1, float y1, float s1, float w1, float x2, float y2, float s2, float w2 )
{
    if( x1 + s1 >= x2 && x1 <= x2 + s2 && y1 + w1 >= y2 && y1 <= y2 + w2 ) return( true );

    return( false );
};

Pozostało 580 znaków

2011-09-25 13:52
blee
0
Mateusz napisał(a)

bool kolizja( float x1, float y1, float s1, float w1, float x2, float y2, float s2, float w2 )
{
if( x1 + s1 >= x2 && x1 <= x2 + s2 && y1 + w1 >= y2 && y1 <= y2 + w2 ) return( true );
return( false );

};


za taki kod powinni kulki obrywać ;) Spróbuj umieścić współrzędne w jakiejś strukturze lub klasie żeby nabrało to przejrzystości.

Mała uwaga ode mnie:

warunki typu
```cpp
if(warunek) cos tam;
else cos tam;

w c++ można zapisywać operatorem:

(warunek) ? cos tam : cos tam;

a kod typu:

bool example(int a, int b)
{
     if(a > b) return true;
     return false;
} 

lepiej zapisać tak:

inline bool example(int a, int b) { return a > b; }

Pozostało 580 znaków

2011-09-25 21:01
Mateusz
0

to jak pomoże ktoś?

Pozostało 580 znaków

2011-09-26 15:53
0

To jeszcze wytłumacz tą funkcję, bo nie chce mi się rozszyfrowywać jak to działa.


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał

Pozostało 580 znaków

2011-09-26 17:32
Mateusz
0

po prostu jest to sprawdzanie czy krawędzie się na siebie nakładają i tyle

Pozostało 580 znaków

2011-09-26 20:23
0

To jest gra na kafelkach czy można je potraktować, że obiekty mają obwód typu okrąg lub prostokąt?


Gdy się nie wie, co się robi, to dzieją się takie rzeczy, że się nie wie, co się dzieje ;-)

Pozostało 580 znaków

2011-09-26 21:04
Mateusz
0

mapa jest kafelkowa ale obiekty to prostokąty

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0