Pour un jeu de type Peggle , je veux faire des blocs qui suivent une courbe, comme ceci:
Les blocs disparaissent alors lorsque la balle les frappe.
J'ai réussi à en dessiner horizontalement, mais j'ai du mal à leur faire suivre un chemin:
Comment puis-je faire cela? Dois-je créer des objets Box2D avec des sommets personnalisés?
Réponses:
Étant donné une courbe "racine", voici comment générer des sommets de bloc.
La courbe racine est au milieu, en noir. Ses points de contrôle sont indiqués par un
X
s rouge .En bref : j'ai fait un Bézier et l' ai échantillonné (à un rythme configurable). J'ai ensuite trouvé le vecteur perpendiculaire du vecteur de chaque échantillon au suivant, normalisé et mis à l' échelle à une demi-largeur (configurable), d'abord à gauche, puis inversement à droite. Puis l'a dessiné.
Des choses que vous pourriez ajouter à cela:
Voici mon code. Il est écrit en Lua (pour le framework de jeu LÖVE ), mais je pense qu'il est lisible pour tout le monde.
Si vous souhaitez jouer avec: Obtenez LÖVE et placez le code ci-dessus
main.lua
dans son propre répertoire. Mettezvector.lua
de laHUMP
bibliothèque dans le même répertoire. Exécutez-le àlove <that-directory>
partir d'une ligne de commande.Déplacez la souris! Le point de contrôle central est défini à l'emplacement de la souris:
la source