Para un juego tipo Peggle , quiero hacer bloques que sigan una curva, así:
Los bloques desaparecerían cuando la pelota los golpeara.
Logré dibujar algunos horizontalmente, pero tengo problemas para que sigan un camino:
¿Cómo hago esto? ¿Necesito crear objetos Box2D con vértices personalizados?
collision-detection
box2d
geometry
curves
Moerin
fuente
fuente
Respuestas:
Dada una curva "raíz", así es como puede generar vértices de bloque.
La curva raíz está en el medio, en negro. Sus puntos de control se muestran con
X
s rojo .En resumen : hice un Bézier y lo probé (a una velocidad configurable). Luego encontré el vector perpendicular del vector de cada muestra a la siguiente, lo normalicé y lo escalé a un ancho medio (configurable), primero a la izquierda, luego inversamente a la derecha. Luego lo dibujó.
Cosas que podrías agregar a esto:
Aquí está mi código. Está escrito en Lua (para el marco del juego LÖVE ), pero creo que es legible para cualquiera.
Si desea jugar con él: Obtenga LÖVE y coloque el código anterior
main.lua
en su propio directorio. Ponervector.lua
de laHUMP
biblioteca en el mismo directorio. Ejecútelo comolove <that-directory>
desde una línea de comando.Mueve el mouse! El punto de control central está configurado en la ubicación del mouse:
fuente