Имитация пламени свечи в Objective C - PullRequest
4 голосов
/ 26 октября 2010

В рамках текущего проекта меня попросили отобразить свечу на экране. Пользователи должны иметь возможность наклонить устройство, чтобы наклонить пламя, и выполнить действие (например, постукивание), чтобы выбросить пламя. Я в полном недоумении от того, как этого добиться. Некоторые идеи, которые у меня были:

  • купить фильм со свечой на стоковом видео сайте. Это не позволит мне наклонить или задуть пламя, хотя
  • получить несколько кадров и анимировать их, чтобы создать эффект мерцающего пламени
  • использовать излучатель частиц в какой-либо форме

Полагаю, я бы предпочел использовать излучатель частиц, поскольку не вижу работающего видео, и получение необходимых ресурсов для анимации кадра может быть проблемой. Я знаю, что у Cocos2D есть эмиттер частиц, но это часть более крупного проекта UIKit, который нельзя разорвать на части и снова начать строить поверх Cocos2D.

У кого-нибудь есть идеи, как мне этого добиться?

Ответы [ 4 ]

1 голос
/ 26 октября 2010

Вы можете взглянуть на учебник Nehe по генерации частиц:

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

Нетрудно приспособить это, чтобы создать нечто, похожее на свечу.

(Для этого вы можете встроить вид GL в другой вид.)

1 голос
/ 26 октября 2010

Для предыдущего проекта у нас был веб-сайт, который должен был «сгореть», чтобы показать новый веб-сайт внизу. Это было сделано путем записи изображения горящего клочка бумаги, а затем с помощью человека, который был хорош в графических манипуляциях, для очистки и зацикливания видео - это было сделано во Flash.

Что вы можете сделать, так это применить эту технику к вашему свечному видео. Выясните, какие снимки вам нужно сделать, чтобы имитировать все состояния, которые вы хотите создать, включая наклон и выброс пламени, и запишите их. Затем передайте это кому-то, кто может создавать анимационные циклы.

Очевидно, что нечто подобное будет стоить немного денег, но это приведет к наилучшему результату.

Реалистичное пламя очень сложно при использовании графического движка, и оно будет выглядеть фальшиво - если у вас нет большого бюджета.

0 голосов
/ 26 октября 2010

Возможно, вы по-прежнему сможете использовать генератор частиц в GL и запускать его в слое поверх вашего другого интерфейса, чтобы вам не пришлось разрывать все ваше приложение.Я видел, как некоторые люди жалуются на производительность, смешивающую эти методологии, но для простого случая она должна работать нормально.

0 голосов
/ 26 октября 2010

Это на самом деле не вопрос Objective-C.Что вам нужно, так это введение в написание шейдеров OpenGL.

...