Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.05.2012, 16:21
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 11  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Вы же помните, что вместо меча там может быть лук, арбалет, гранаты, или противотанковая ракета
Также персонаж может быть без оружия вообще
Поэтому анимировать слот по умолчанию я бы не назвал хорошей идеей.

Оружие может быть контактным, дистанционным, иметь разные размеры, hit-области и еще кучку свойств определенных в базовом классе Weapon

В целом я пока разницы не вижу, добавлять в контейнер, или прямо к персонажу.

Но вообще, я говорил только о том что добавлять предметы нужно по мере их необходимости в игре.
__________________
adobe AS3 manual

Старый 26.05.2012, 16:58
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 12  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если Вы когда-нибудь анимировали персонажа, все его действия, как он бегает, поворачивается, стреляет – влево, вправо, вперед – то идея добавлять оружие "персонажу" а не в специальный слот, положение которого определено в анимации, не может показаться Вам такой замечательной. Граната это или арбалет, нет никакой разницы — оно связано с анимацией. Анимация действий персонажа с гранатой и с арбалетом может различаться, но это не меняет ровным счетом ничего, речь только о разных анимациях персонажа, разных секвенциях кадров или даже разных клипах с персонажем. Разработчик в здравом уме конечно же не добавит гранату в слот анимации действий с арбалетом.
Код AS3:
В целом я пока разницы не вижу, добавлять в контейнер, или прямо к персонажу.
Если бы персонаж был неподвижен "внутри" клипа, разницы бы не было. Но поскольку его руки постоянно меняют положение относительно его собственной системы координат, добавленное "прямо к персонажу" оружие Вам пришлось бы как-то извне анимировать в соответствии с анимацией персонажа. Если всё еще непонятно, уточню: анимация персонажа это не смещение клипа с персонажем по карте. Это то изменение формы персонажа, которое происходит внутри его клипа, и требует постоянного изменения положения, масштаба и поворота оружия.

Добавлено через 12 минут
Цитата:
Но вообще, я говорил только о том что добавлять предметы нужно по мере их необходимости в игре.
А Вы думаете, персонаж будет размахивать пустым слотом, как-будто там есть меч? Ну опять же, всё зависит от здравомыслия разраба.
Если перс бъется врукопашку, то и "ненужного" слота меча в этой анимации нет. А уж если бъется мечом, то только потому, что в руках меч. Что и где было добавлено без необходимости? Слот для меча в анимации действий с мечом? О__о
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 26.05.2012 в 17:02.
Старый 26.05.2012, 17:30
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 13  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Мне пока на ум приходит 1 вариант, сделать несколько слоев в анимациях персонажа, на каждом слое его instance name будит соответствовать виду его оружия (меч, лук, т.д.) при выборе определенного оружия все остальные сделать visible=false. Это что касается анимации с видами оружия.


Последний раз редактировалось Tetraeon; 26.05.2012 в 17:33.
Старый 26.05.2012, 18:15
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Почти так. Каждый "слой" в вашем понимании можно сделать просто отдельным клипом, который и помещать в контейнер персонажа. Естественно, эти клипы должны быть полностью заменяемы, иметь одинаковые продолжительности "в кадрах" каждой секвенции и иметь одинаковые методы для вооружения и переодевания. Другими словами, наследовать некий суперкласс Hero.
__________________
Reality.getBounds(this);

Старый 26.05.2012, 20:01
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 15  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Не могу понять как заставить предмет помещенный в слот передать изображение в пустой клип при этом не исчезнув из слота оО. Вот код из пустого клипа для оружия
Код AS3:
var weapon;
if (Armor.arm.slot_1Full)
{
weapon = Armor.targ;
addChild(weapon);
weapon.x = 0;
weapon.y = 0;
}
Armor - класс слота, arm - статическая переменная, slot_1Full - Boolean заполненности слота,
Armor.targ - цель перетаскиваемая мышкой.

Вот код слота:
Код AS3:
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;
		}
	}
}
Я так понимаю addChild в пустом клипе перетягивает изображение, а не копирует. Как тут быть?
Еще как можно в классе выполнить те же действия что и в пустом клипе? Не знаю как к нему обратится.


Последний раз редактировалось Tetraeon; 26.05.2012 в 20:07.
Старый 26.05.2012, 21:08
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 16  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вам бы почитать что-нибудь такое базовое о флэше и AS3... Прежде чем делать ни много ни мало, игру. Хотя бы говорить станете на общепринятом наречии, а не эти странные "перетягивает изображение"...
addChild() помещает указанный клип в указанный контейнер. Не хотите данный клип, создайте новый экземпляр и укажите его.
Последнее предложение просто не понял. Вообще.
__________________
Reality.getBounds(this);

Старый 27.05.2012, 00:02
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 17  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
Wolsh, спасибо за объяснение выше.

Доказали необходимость использования "слота", и разъяснили моменты с разным оружием

Добавлено через 2 минуты
Цитата:
Сообщение от Tetraeon Посмотреть сообщение
slot_1Full - Boolean заполненности слота,
А зачем эта переменная?

если слот пустой, то slot.numChildren == 0
и всего-то

сделайте такой getter:

Код AS3:
public function get full():Boolean {
    return (numChildren > 0);
}
__________________
adobe AS3 manual


Последний раз редактировалось strangedk; 27.05.2012 в 00:06.
Старый 27.05.2012, 14:49
RandomUser вне форума Посмотреть профиль Отправить личное сообщение для RandomUser Найти все сообщения от RandomUser
  № 18  
Ответить с цитированием
RandomUser

Регистрация: Mar 2006
Адрес: Odessa
Сообщений: 157
Может, все таки, назначите для каждого оружие свой класс, и будите добавлять уже новый экземпляр оружия?
Тогда точно нигде ничего исчезать не будет.
__________________
Не всех война убила - многих покалечила

Старый 27.05.2012, 18:51
Tetraeon вне форума Посмотреть профиль Отправить личное сообщение для Tetraeon Найти все сообщения от Tetraeon
  № 19  
Ответить с цитированием
Tetraeon

Регистрация: May 2012
Сообщений: 166
Цитата:
Сообщение от RandomUser Посмотреть сообщение
Может, все таки, назначите для каждого оружие свой класс, и будите добавлять уже новый экземпляр оружия?
Тогда точно нигде ничего исчезать не будет.
Я так и поступил спасибо за ценный совет.


Цитата:
Сообщение от Wolsh Посмотреть сообщение
Последнее предложение просто не понял. Вообще.
Стараюсь совмещать теорию и практику... увы сразу все не дается.

Я имел ввиду, как обратиться к пустому клипу библиотеки из любого класса?
если в библиотеке достаточно просто зайти в Actions пустого клипа и написать addChild();
то как это сделать скажем из класса Main?
Имя : mc_weapon
Связывание : weapon_mc
Код AS3:
var weapon = weapon_mc;
if (Armor.arm.slot_1Full)
{
weapon.addChild(Armor.targ);
}
TypeError: Error #1006: addChild не является функцией.
at Main/game()


Последний раз редактировалось Tetraeon; 27.05.2012 в 19:23.
Старый 27.05.2012, 19:37
strangedk вне форума Посмотреть профиль Отправить личное сообщение для strangedk Найти все сообщения от strangedk
  № 20  
Ответить с цитированием
strangedk
 
Аватар для strangedk

Регистрация: Oct 2010
Адрес: Харьков
Сообщений: 616
Записей в блоге: 1
Отправить сообщение для strangedk с помощью ICQ Отправить сообщение для strangedk с помощью Skype™
В Main классе:

Код AS3:
public var weapon_mc:MovieClip; // Без new !
если у weapon_mc есть собственный класс, то вместо MovieClip нужно указать этот тип
__________________
adobe AS3 manual

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.