Recomendaría revisar la página de explosión iforce2d . Hace un gran trabajo al repasar las diversas formas de manejar explosiones con las compensaciones de rendimiento versus precisión. Se trata de 3 métodos que resumiré aquí. Así que este es simplemente un resumen de la información que encontré mientras investigaba y nada de eso es mi propio trabajo.
También desea aplicar impulsos aquí, no fuerzas. Para entender por qué leer esto .
El método de proximidad.
Este es el mismo método que Byte56 repasa en su respuesta. El concepto es simple. Tenga un punto de explosión y aplique un impulso en la dirección opuesta lejos del punto que afectará a todos los objetos con una fuerza basada en su distancia.
Pros:
- Muy rapido
- Fácil de codificar.
Contras:
- Las explosiones pasan a través de objetos inamovibles y cuerpos estáticos.
- Los objetos que se encuentran en el área de influencia de la explosión pueden saltarse si solo verifica la distancia al centro de masa.
- El área de superficie no se tiene en cuenta.
- Todo se ve afectado a la vez.
El método de Raycast.
Este es bastante simple, expulsa rayos desde el origen de tu explosión y aplica impulsos cuando chocan contra un objeto con un impulso dictado por la distancia.
Pros:
- Menos rendimiento intensivo que el método de proyectiles.
- Explosión bloqueada por objetos.
- Área de superficie tomada en cuenta.
Contras:
- Todo se ve afectado a la vez.
- Cuanto mayor sea la explosión, más rayos necesitará para asegurarse de que la explosión afecte todo.
- Más rendimiento intensivo que el método de proximidad.
El método de partículas.
Mi favorito personal Similar al método RaySasting, pero en lugar de rayos, aprovecha el motor de física y escupe pequeños gránulos que interactúan con su escena.
Pros:
- Extremadamente fácil en cuanto a código. Genera las bolas y aplica un impulso a cada una. No tiene código para escribir por marca. Solo tenga un temporizador que funcione y desactive / reinicie los cuerpos después de que se complete la explosión.
- La explosión está bloqueada por objetos.
- Se tiene en cuenta la superficie.
- La explosión se refleja en las superficies.
- Los objetos más alejados de la explosión responden más lentamente.
- Puedes usar las bolas como base para generar parciales permitiendo que tus efectos reflejen con precisión el impacto de las explosiones.
Contras:
- Agrega complejidad por marca.