![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Вы же помните, что вместо меча там может быть лук, арбалет, гранаты, или противотанковая ракета
Также персонаж может быть без оружия вообще Поэтому анимировать слот по умолчанию я бы не назвал хорошей идеей. Оружие может быть контактным, дистанционным, иметь разные размеры, hit-области и еще кучку свойств определенных в базовом классе Weapon В целом я пока разницы не вижу, добавлять в контейнер, или прямо к персонажу. Но вообще, я говорил только о том что добавлять предметы нужно по мере их необходимости в игре.
__________________
adobe AS3 manual |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Если Вы когда-нибудь анимировали персонажа, все его действия, как он бегает, поворачивается, стреляет – влево, вправо, вперед – то идея добавлять оружие "персонажу" а не в специальный слот, положение которого определено в анимации, не может показаться Вам такой замечательной. Граната это или арбалет, нет никакой разницы — оно связано с анимацией. Анимация действий персонажа с гранатой и с арбалетом может различаться, но это не меняет ровным счетом ничего, речь только о разных анимациях персонажа, разных секвенциях кадров или даже разных клипах с персонажем. Разработчик в здравом уме конечно же не добавит гранату в слот анимации действий с арбалетом.
Если бы персонаж был неподвижен "внутри" клипа, разницы бы не было. Но поскольку его руки постоянно меняют положение относительно его собственной системы координат, добавленное "прямо к персонажу" оружие Вам пришлось бы как-то извне анимировать в соответствии с анимацией персонажа. Если всё еще непонятно, уточню: анимация персонажа это не смещение клипа с персонажем по карте. Это то изменение формы персонажа, которое происходит внутри его клипа, и требует постоянного изменения положения, масштаба и поворота оружия. Добавлено через 12 минут Цитата:
Если перс бъется врукопашку, то и "ненужного" слота меча в этой анимации нет. А уж если бъется мечом, то только потому, что в руках меч. Что и где было добавлено без необходимости? Слот для меча в анимации действий с мечом? О__о
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 26.05.2012 в 17:02. |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Мне пока на ум приходит 1 вариант, сделать несколько слоев в анимациях персонажа, на каждом слое его instance name будит соответствовать виду его оружия (меч, лук, т.д.) при выборе определенного оружия все остальные сделать visible=false. Это что касается анимации с видами оружия.
Последний раз редактировалось Tetraeon; 26.05.2012 в 17:33. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Почти так. Каждый "слой" в вашем понимании можно сделать просто отдельным клипом, который и помещать в контейнер персонажа. Естественно, эти клипы должны быть полностью заменяемы, иметь одинаковые продолжительности "в кадрах" каждой секвенции и иметь одинаковые методы для вооружения и переодевания. Другими словами, наследовать некий суперкласс Hero.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Не могу понять как заставить предмет помещенный в слот передать изображение в пустой клип при этом не исчезнув из слота оО. Вот код из пустого клипа для оружия
var weapon; if (Armor.arm.slot_1Full) { weapon = Armor.targ; addChild(weapon); weapon.x = 0; weapon.y = 0; } Armor.targ - цель перетаскиваемая мышкой. Вот код слота: if (!(slot_1Full)) { if (Point.distance(targPoint, slotA)<=20) /// Проверка пересечения с слотом { /// при отпускании мыши if (targ as TwoHanded) /// проверка принадлежности к классу { trace('TwoHanded'); targ.x = slot_1.x; targ.y = slot_1.y; } } } Еще как можно в классе выполнить те же действия что и в пустом клипе? Не знаю как к нему обратится. Последний раз редактировалось Tetraeon; 26.05.2012 в 20:07. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вам бы почитать что-нибудь такое базовое о флэше и AS3... Прежде чем делать ни много ни мало, игру. Хотя бы говорить станете на общепринятом наречии, а не эти странные "перетягивает изображение"...
addChild() помещает указанный клип в указанный контейнер. Не хотите данный клип, создайте новый экземпляр и укажите его. Последнее предложение просто не понял. Вообще.
__________________
Reality.getBounds(this); |
|
|||||
|
Wolsh, спасибо за объяснение выше.
Доказали необходимость использования "слота", и разъяснили моменты с разным оружием Добавлено через 2 минуты А зачем эта переменная? если слот пустой, то slot.numChildren == 0 и всего-то сделайте такой getter:
__________________
adobe AS3 manual Последний раз редактировалось strangedk; 27.05.2012 в 00:06. |
|
|||||
|
Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
|
Может, все таки, назначите для каждого оружие свой класс, и будите добавлять уже новый экземпляр оружия?
Тогда точно нигде ничего исчезать не будет.
__________________
Не всех война убила - многих покалечила |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Цитата:
Стараюсь совмещать теорию и практику... увы сразу все не дается. Я имел ввиду, как обратиться к пустому клипу библиотеки из любого класса? если в библиотеке достаточно просто зайти в Actions пустого клипа и написать addChild(); то как это сделать скажем из класса Main? Имя : mc_weapon Связывание : weapon_mc TypeError: Error #1006: addChild не является функцией. at Main/game() Последний раз редактировалось Tetraeon; 27.05.2012 в 19:23. |
|
|||||
|
В Main классе:
если у weapon_mc есть собственный класс, то вместо MovieClip нужно указать этот тип
__________________
adobe AS3 manual |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|