Scorpion | Дата: Вторник, 04.09.2012, 11:48 | Сообщение # 1 |
Профессионал
Группа: Главный Администратор - Сайта
Сообщений: 126
Статус: Не в сети
| Это создает файербол,который следует за противником(например - ракета у сектора в MK3) Чтобы это сделать должны использоваться Helper`ы. Если Вы хотите добавить какие-либо Эффекты Снаряда, просто добавьте их к этому Стейту.
Code [Statedef ****] type = A movetype = A physics = N anim = ****
Это необходимо, так, чтобы снаряд не мог быть уничтожен и превратиться в копию главного героя. Это - то, что я использую, но за альтернативу, Вы можете вставить HitOverride, или просто не поставить Clsn2-коробки =)
Code [State ****: NotHitBy] type = NotHitBy trigger1 = 1 value = SCA
Эти следующие части необходимы, чтобы следовать за противником и развернуться, если противник так или иначе отстает он. Превращение не требуется, но оно зависит от типа anim, который Вы используете для снаряда.
Все VelSet и VelAdd , могут быть изменены соответственно.
The triggers "Vel X > -6", "Vel Y < 6" and "Vel Y > -6" используются для того,чтобы ограничить скорость снаряда.
[State ****: Turn] type = Turn trigger1 = (P2Dist X < 10)
[State ****: VelSet] type = VelSet trigger1 = (!Time) x = 3
[State ****: VelAdd] type = VelAdd trigger1 = (P2Dist X < 0) && (Vel X > -6) x = -0.2
[State ****: VelAdd] type = VelAdd trigger1 = (P2Dist X > 0) && (Vel X < 6) x = 0.2
[State ****: VelAdd] type = VelAdd trigger1 = (EnemyNear, Pos Y > Pos Y) && (Vel Y < 6) y = 0.2
[State ****: VelAdd] type = VelAdd trigger1 = (EnemyNear, Pos Y <= Pos Y) && (Vel Y > -6) y = -0.2
Конечно, контроллер HitDef необходим. Все здесь зависит от вас, но "attr" параметр должен быть установлен на тип снаряда. Например, "S, SP"
Code [State ****: HitDef] type = HitDef trigger1 = 1 attr = S, SP ; (etc...)
Эта последняя часть используется,для того чтобы уничтожить Helper, когда он вступает в контакт с противником,или когда у этого есть плавание вокруг периода на время, чтобы уменьшить дешевизну..
Альтернативно Вы можете поместить Снаряд в другой стейт если Вы хотите, чтобы что-то еще произошло прежде, чем это будет удалено.
Code [State ****: DestroySelf] type = DestroySelf trigger1 = (MoveContact) || (Time > 200) ignorehitpause = 1
Автор перевода:scorpion Ссылка на источник:http://mkproject.3dn.ru/ При копировании ссылка на источник - обязательна!!!
|
|
| |