2011-04-27 2 views
1

J'expérimente de nouvelles idées dans Cocos2D/Box2D sur iPhone.cocos2d/box2d iPhone - Chemins circulaires aléatoires

Je veux animer un petit essaim de lucioles se déplaçant sur circulaire (au hasard?) Chemins ... l'idée est que l'utilisateur peut capturer une luciole avec un filet ..

j'ai envisagé d'utiliser des simulations de gravité pour ceci mais je crois que c'est compliquer des choses ... mon expérience antérieure avec l'utilisation des courbes de Bézier me dit que ce n'est pas non plus la solution ..

Est-ce que quelqu'un a des perspicacités lumineuses pour moi?

Merci beaucoup.

Répondre

6

Avez-vous besoin lucioles d'entrer en collision les uns avec les autres?

Je demande, comme si ce n'est pas une exigence, Box2D est probablement trop pour vos besoins. Cocos2d est un excellent choix pour cela par les sons, mais je pense que vous feriez mieux de regarder dans les algorithmes de flocage comme boids

Même cela peut être trop compliqué. Mélanger quelques termes de sinus et de cosinus avec quelques facteurs d'échelle aléatoires suffiront probablement.

Vous pourriez avoir une combinaison sin/cosinus formant une ellipse à peu près la taille de l'écran:

x = halfScreenWidth + cos (t) * halfScreenWidth * randomFactor; 
y = halfScreenHeight + sin (t) * halfScreenHeight * randomFactor; 

où randomFactor serait quelque chose dans le domaine de 0,6 à 0,9

Cela vous donnera un large mouvement elliptique autour de l'écran, alors vous pourriez ajouter un plus petit facteur sin/cos pour les faire tourbillonner autour du point sur cette ellipse. En multipliant votre temps delta (t) par différentes valeurs (négatives et positives), le chemin de la courbe se déplacera de façon moins géométrique. Par exemple, si vous utilisez

x = halfScreenWidth + cos (2*t) * halfScreenWidth * randomFactor; 

l'ellipse se transforme en une figure 8. (je pense!)

Hope this helps à démarrer. Bonne chance.

1

Un endroit pour chercher des idées serait dans le domaine de la vie artificielle. Ils simulent depuis longtemps des essaims d'entités. Voici un lien pour un code d'essaim simple écrit en Java qui devrait vous donner quelques idées.

http://www.aridolan.com/ofiles/Download.aspx