Gå til innhold

Kollisjonskode for Pong klone i JavaScript fungerer ikke ordentlig


Anbefalte innlegg

Jeg holder på med HTML5 og Canvas for å lage en enkel Pong-klone, men jeg har problemer med at om ballen og den høyre staven har samme x- eller y-verdi, begynner ballen å vibrere noe voldsomt. Ballen spretter helt fint fra den venstre staven, men samme effekt skjer om ballen kommer bak den venstre staven.

 

Jeg har en anelse om at det kan ha noe med at ballen er bak stavene å gjøre (om vi da sier at stavene vender mot høyre), men jeg vet ikke hvordan jeg skal fikse det.

 

Her en CodePen til spillet: https://codepen.io/wostensen/pen/LLVxaL

Det er i funksjonen isColliding. Brukte denne formelen: https://developer.mozilla.org/kab/docs/Games/Techniques/2D_collision_detection

Lenke til kommentar
Videoannonse
Annonse

Hvis jeg forstår problemet riktig at ballen vibrerer før den har kollidert med en «paddle», er det ganske enkelt fordi du sjekker obj2.width i stedet for obj2.x i isColliding.

 

Du har et lignende problem når ballen kolliderer med toppen/bunnen av en «paddle» fordi ballen bare spretter én vei uansett hvor den kolliderer. Hvis du vil at ballen skal sprette, må du også ta høyde for at en «paddle» kan bevege seg mot ballen (ballen kan sitte fast inni). Et alternativ kan være å la ballen bevege seg rett gjennom hvis den ikke har kollidert med fronten til en «paddle». :)

Endret av ahw_
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...