Red de conocimiento informático - Problemas con los teléfonos móviles - Colisión unilateral 2D unificada

Colisión unilateral 2D unificada

Personalmente creo que las colisiones se pueden dividir en dos categorías: más colisiones físicas y menos colisiones físicas.

Colisión física: por ejemplo, en el juego del pájaro que lucha, el pájaro se recuperará después de chocar contra obstáculos según su propia velocidad y gravedad.

Menos colisiones físicas: por ejemplo, en el juego "Super Mario", no importa cuánta aceleración corra Mary hacia adelante y golpee un obstáculo, Mary no se recuperará.

Entonces, en este artículo, principalmente quiero escribir sobre algunas colisiones que no son muy físicas y pensar en cómo se hacían los juegos 2D anteriores.

Capa de escena: el editor de escena genera una enorme matriz bidimensional, cada número representa un significado, como 0-9 representa diferentes mosaicos. Toda la escena del juego se dibuja mediante un bucle for doble basado en una matriz bidimensional.

Capa física: otra matriz de dos dígitos igual que la anterior, por ejemplo, 0 significa que puede pasar, 1 significa que no puede pasar, que es la capa de colisión. Planee editar todas las capas físicas en el editor.

Puede haber dos matrices 2D idénticas, una capa de primer plano y una capa de fondo. . . No entraré en detalles. . Finalmente, el código se utiliza para detectar si el personaje puede continuar moviéndose o colisionar.

Combinado con unity3d, ¿puede seguir siendo así ahora? Respuesta: Por supuesto que puedes hacer esto, pero Unity nos proporciona una nueva solución. No tenemos que escribir nuestro propio código para detectar esta parte de la colisión. .

Las matrices bidimensionales parecen un poco problemáticas, simplifiquemos el problema. Como se muestra en la imagen siguiente, el área roja indica que el pez pequeño no puede caminar. Creo que lo primero que piensa la gente que acaba de empezar a aprender unity2d es asignar transfom.postion al pez pequeño y comprobar si colisiona en Update, porque eso es lo que pienso.