![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
Как с помощью системы частиц Flint установить для каждой новой частицы свою скорость (velocity), что бы получить распространенный эффект плывущих обгоняющих/догоняющих друг друга облаков.
В данном коде Velocity устанавливается один раз и одно и то же для всех новых генерируемых частиц. А мне надо для каждой частицы установить свою скорость (velocity). Последний раз редактировалось Alexmody; 12.12.2011 в 16:10. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Унаследуйте класс Velocity и переопределите метод initialize
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
Вы так делали на практике и все получилось или предположили?
|
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
посмотрел исходный код движка и пришел к такому выводу
Добавлено через 1 минуту https://github.com/richardlord/Flint...rs/Velocity.as Добавлено через 7 минут Примерно такое у вас должно получиться: package myPackage { import org.flintparticles.twoD.initializers.Velocity; import org.flintparticles.twoD.zones.Zone2D; public class RandomVelocity extends Velocity { public RandomVelocity( zone:Zone2D=null ) { super(zone); } override public function initialize( emitter:Emitter, particle:Particle ):void { super.initialize(emitter, particle); var rnd:Number = Math.random(); var p:Particle2D = particle as Particle2D; p.velX *= rnd; p.velY *= rnd; } } }
__________________
Загружаем картинки, минуя ошибки безопасности Последний раз редактировалось i.o.; 13.12.2011 в 12:36. |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
i.o.
Спасибо, очень помогли, получилось. Хотя, меньше всего хотел править движок. FLINT достаточно мощный, но я несколько в недоумении, при таком кол-е возможностей (даже слишком), упустить рандомно ставить скорость. Я уже написал об этом автору движка. Недавно Box2D правил, теперь вот и до FLINT'а дошло... |
|
|||||
|
Верните мне глаза, вбил в гугле flint engine и попал на flintengine.com
__________________
:) |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
Цитата:
|
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
Цитата:
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
Конечно, это не правка в полном смысле слова, я имею ввиду,то что пришлось добавлять (хоть и просто), а не использовать уже заранее готовый инструментарий.
|
|
|||||
|
Регистрация: Dec 2010
Сообщений: 177
|
Ответил разработчик Flint (Ричард), он пояснил:
The Velocity initializer uses a zone, which is passed to the constructor, to define the initial velocity of the particle. The zone defines a region in 2d or 3d space. For example a circle or a rectangle. When Flint sets the velocity of the particle it picks a random point within that space and uses the vector from the origin to that point as the velocity for the particle. So yes, Flint can and does do random velocities. The only way not to get a random velocity is to use a PointZone with the Velocity initializer. A few of the examples use zones to set random velocities within controlled parameters, like sparkler, fire & smoke, and the most extreme example logo firework, which uses a picture to define the initial velocity and thus force the particles to create the logo image as they spread out. В моем случае подошел сл. код: Т.е. тип зоны для velocity: LineZone, а ранее я использовал PointZone (выше Ричард написал, что это единственный тип зоны в котором нету рандома). Последний раз редактировалось Alexmody; 22.12.2011 в 18:37. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:55. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|