/ / Colisión con imagen (forma irregular) - javascript, html, detección de colisión, colisión, clon de pájaro flappy

Colisión con imagen (forma irregular): javascript, html, detección de colisión, colisión, flappy-bird-clone

Actualmente estoy haciendo un pájaro flappy y lo cambiéDe rectángulos a mis propias imágenes y tal. Parece que no puedo entender cómo hacerlo, así que cuando el ave (forma irregular) golpea el rectángulo, muere. No sé cómo codificar para una colisión cuando es una forma rara. Aquí hay una imagen. . Yo dibujo el pájaro así.

var img = document.getElementById("bird");
brush.drawImage(img, 20, this.y);

Se adjunta una imagen del juego, el pájaro y el código.

Imagen del juego

Imagen del juego

Respuestas

0 para la respuesta № 1

Necesitas implementar colisionadores. Están listos para usar en motores de juegos como Unity, pero si desea implementar esto usted mismo, considere lo siguiente:

  1. Crea componentes colisionadores para tu ave yparedes Los colisionadores son formas simplificadas para hacer que los algoritmos de detección de colisiones sean más fáciles y rápidos con respecto a la velocidad de la CPU. Por ejemplo, para pájaro puede ser un círculo alrededor de él y rectángulos para sus paredes.
  2. Durante el evento Update Frame, compruebe si suCírculo delimitador de ave se intersecta con rectángulos de pared. Es matemática simple, puede encontrar fórmulas para "intersección rectángulo círculo" en google.
  3. Si se detecta una colisión, tu pájaro debería estrellarse

¡Eso es!


0 para la respuesta № 2

Aquí hay un buen libro sobre el tema: Juego 2D Detección de colisiones: una introducción a la geometría conflictiva en los juegos por Thomas Schwarzl

Se puede encontrar p. aquí http://www.amazon.de/2D-Game-Collision-Detection-introduction/dp/1479298123/ref=sr_1_1?ie=UTF8&qid=1448932508&sr=8-1&keywords=2d+collision

Si puede manejar una colisión rectangular, intente llenar la forma de su complejo Figura con rectángulos y prueba cada uno de ellos. En tu caso trata de usar un círculo para el ave.