2010-10-25 27 views
4

Dans le cadre d'un projet en cours, on m'a demandé d'afficher une bougie à l'écran. Les utilisateurs doivent être en mesure d'incliner l'appareil pour incliner la flamme et effectuer une action (par exemple, toucher) pour éteindre la flamme. Je suis à une perte réelle sur la façon d'y parvenir. Quelques idées que j'ai eu:Simulation d'une flamme de bougie dans l'objectif C

  • acheter un film d'une bougie à partir d'un site de vidéo de stock. Cela ne me laisse pas incliner ou souffler la flamme si
  • obtenir un certain nombre de cadres et de les animer pour donner l'apparence d'une flamme vacillante
  • d'utiliser une forme d'émetteur particules

Je suppose que mon La préférence serait probablement d'utiliser l'émetteur de particules, car je ne peux pas voir la vidéo fonctionner et obtenir les actifs nécessaires pour l'animation du cadre pourrait être un problème. Je sais que Cocos2D a un émetteur de particules, mais cela fait partie d'un projet UIKit plus grand qui ne peut pas être déchiré et recommencé à construire au-dessus de Cocos2D.

Est-ce que quelqu'un a des idées sur la façon dont je peux y parvenir?

Répondre

1

Vous pouvez regarder le tutoriel Nehe sur la génération de particules:

http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19

Il ne serait pas difficile d'adapter ce pour produire quelque chose qui ressemble à une bougie.

(Vous pouvez intégrer une vue GL dans une autre vue pour cela.)

0

Ce n'est pas vraiment une question Objective-C. Ce dont vous avez besoin est une introduction à l'écriture de shaders OpenGL.

1

Pour un projet précédent, nous avions un site Web qui devait «brûler» pour révéler le nouveau site Web en dessous. Ceci a été accompli en enregistrant l'image d'un morceau de papier en feu et en obtenant ensuite quelqu'un qui était bon en manipulation graphique pour nettoyer et boucler la vidéo - ceci a été fait en Flash.

Ce que vous pourriez faire est d'appliquer cette technique à votre vidéo de bougie. Déterminez les photos que vous devez prendre pour simuler tous les états que vous voulez créer, y compris l'inclinaison et la diffusion de la flamme, et enregistrez-les. Ensuite, passez cela à quelqu'un qui peut créer les boucles d'animation.

Évidemment, quelque chose comme ça va coûter un peu d'argent, mais ça va créer le meilleur résultat.

Les flammes réalistes sont très dures à l'aide d'un moteur graphique et elles auront l'air fausses - sauf si vous avez un gros budget.

+0

Merci pour les commentaires et je suis d'accord ce chercherais probablement le meilleur. Malheureusement, comme vous le dites, l'argent est le plus gros inhibiteur. –

0

Vous pouvez toujours utiliser un générateur de particules dans GL et l'exécuter dans une couche au-dessus de votre autre interface afin de ne pas avoir à déchirer votre application entière. J'ai vu des gens se plaindre de la performance mélangeant ces méthodologies, mais pour un cas simple cela devrait fonctionner correctement.