[C#] lista 3250 4

O temacie

Autor Vifi

Zaczęty 15.12.2012 roku

Wyświetleń 3250

Odpowiedzi 4

Vifi

Vifi

Użytkownicy
posty4
  • Użytkownicy

Vifi

[C#] lista
2012-12-15, 08:43(Ostatnia zmiana: 2012-12-15, 11:23)
Cześć,
piszę grę w XNA i natknąłem się na problem którego nie potrafię rozwiązać.
Mianowicie chodzi o kolizję z budynkami.
W game1 tworzę listę tych budynków, a później w Player w foreach sprawdzam kolizję z nimi, i jeśli jest to zeruje speed i nie daje się wykonywać instrukcją przy wciskaniu klawiszy.
//W Postaci
 foreach (Budynek b in Game1.listbudynk)
                {
                    if (top.Intersects(b.kwadrat))
                    {
                       
                        kolizjaGora = true;
                        speed.Y = 0;
                    }
                    else
                        kolizjaGora=false;

                    if (bot.Intersects(b.kwadrat))
                    {
                        kolizjaDol = true;
                        speed.Y = 0;
                    }
                    else
                        kolizjaDol = false;

                    if (left.Intersects(b.kwadrat))
                    {
                        kolizjaLewa = true;
                        speed.X = 0;
                    }
                    else
                        kolizjaLewa = false;

                    if (right.Intersects(b.kwadrat))
                    {
                        kolizjaPrawa = true;
                        speed.X = 0;
                    }
                    else
                        kolizjaPrawa = false;


                }

//Przykladowy ruch
if (kolizjaLewa == false)
                {
                    if (kb.IsKeyDown(Keys.A))
                    {
                        if (speed.X >= -3)
                            speed.X += -1;
                    }
                    else
                    {
                        if (speed.X < 0)
                            speed.X += 1;
                    }
                }

top,bot itd, to prostokaty 1x1 po srodku kazdego boku tekstury postaci.
Lista z budynkami robi się w inicjalizacji w Game1.

Po uruchomieniu wygląda to tak że wszystko dobrze działa tylko dla ostatniego elementu listy, czyli dla budynku który stworzyłem ostatni. Dla całej reszty przy kolizji postać zwalnia do 1 i przechodzi przez budynek.
Nie wiem jak to możliwe.
Pomocy!
 

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
chyba błąd musi być gdzie indziej. No i swoją drogą to chyba nie jest najlepszy sposób realizowania kolizji, ale nie jestem w tym specem.
 
Popisuje się ciągle menda jedna...

Vifi

Vifi

Użytkownicy
posty4
  • Użytkownicy
Jestem otwarty na propozycje.
Tak naprawdę to jedyny sposób jaki wymyśliłem na sprawdzanie kolizji z konkretnej strony.
Jeśli masz inny pomysł, to proszę podziel się.
 

mgr Fartuess

mgr Fartuess

Użytkownicy
Kiedyś to były czasy!
posty1485
Propsy890
ProfesjaProgramista
  • Użytkownicy
  • Kiedyś to były czasy!
mogę podrzucić wycinki kodu jaki mam napisany w ActionScriptcie, który realizuje sprawdzanie kolizji na dwuwymiarowych prostokątach.
 
Popisuje się ciągle menda jedna...

Vifi

Vifi

Użytkownicy
posty4
  • Użytkownicy
Chętnie go przejrzę
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry