• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z kolizją gracza z innym obiektem w Phaserze 3 (JS)

Cloud VPS
0 głosów
611 wizyt
pytanie zadane 9 stycznia 2023 w JavaScript przez xTMx3 Obywatel (1,560 p.)
edycja 9 stycznia 2023 przez xTMx3

Witam,

korzystając z silnika Phaser 3 tworzę właśnie swoją pierwszą w życiu grę. Na scenie gdzie będzie się odbywała się cała rozgrywka utworzyłem tło i inne elementy otoczenia, gracza oraz przeszkody na drodze. Jedna z przeszkód jest powiedzmy "kwadratowa" i chciałem zrobić tak, aby gracz po wskoczeniu na nią został spowolniony o połowę swojej prędkości, a kiedy spadnie lub zeskoczy z niej z powrotem na podłogę, jego prędkość wróci do stanu poprzedniego.

Fragment kodu, który miałby za realizację tego pomysłu odpowiadać napisałem w ten sposób:

if (this.physics.world.collide(this.player, this.obst)) { //this.player odnosi się do gracza, this.obst do przeszkody
    this.player.body.velocity.x /= 2;
    this.player.body.velocity.y /= 2;
}

Niestety z jakiegoś powodu kod ten nie działa i co więcej dzieje się dziwna, a przynajmniej według mnie dziwna, rzecz. Mianowicie, dla sprawdzenia co się dokładnie dzieje utworzyłem sobie zmienną  var playerOnObst i ustawiłem ją na false. W powyższym warunku dopisałem linijkę:

playerOnObst = true; 

Natomiast pod tym warunkiem wpisałem sobie:

console.log(playerOnObst);

Kiedy w oknie z grą uruchomiłem konsolę początkowo przez cały czas widziałem jedynie jedną linijkę z napisem "false". Natomiast kiedy przemieściłem postać gracza i ustawiłem ją na tej przeszkodzie konsola zaczęła mi wyświetlać trwający w nieskończoność spam złożony z "true" oraz "false". Tutaj zrzut ekranu, który to obrazuje: 

i tak w nieskończoność dopóki postać gracza nie zejdzie z przeszkody. 

 

Czy ktoś bardziej rozeznany w temacie niż ja mógłby mi wytłumaczyć dlaczego tak się dzieje? Tak powinno być i po prostu moja metoda na realizację tej myśli jest zła? Jak w takim razie mógłbym się za to zabrać?

Z góry dziękuję za wszelką pomoc. 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 1,121 wizyt
pytanie zadane 22 października 2019 w C# przez niezalogowany
0 głosów
1 odpowiedź 194 wizyt
pytanie zadane 23 marca 2019 w JavaScript przez BT101 Stary wyjadacz (12,540 p.)
0 głosów
1 odpowiedź 343 wizyt
pytanie zadane 27 lipca 2015 w C i C++ przez niezalogowany

93,464 zapytań

142,459 odpowiedzi

322,730 komentarzy

62,844 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...