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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.06.2011, 10:31
royality вне форума Посмотреть профиль Отправить личное сообщение для royality Найти все сообщения от royality
  № 1  
Ответить с цитированием
royality

Регистрация: Nov 2010
Сообщений: 7
Question Вопрос про взаимодействие с инвентарем

Доброго времени суток! Облазил интернет, форум и так далее, но не смог найти решения. Люди помогите пожалуйста реализовать один момент в моей разработке.

Делаю простенькую игру, и не могу понять как создать логику вот в чем:

у меня есть мувиклип hero - в нем 4 кадра с разными состояниями героя.

у героя в настройках указал класс: MyHero

Так же у меня есть меч, у него класс: Sword

и кнопка с изображением меча: swordButton

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

Думаю есть 2 варианта, но не могу реализовать их почему-то:
1. Изначально добавить оружие в руки герою и сделать alpha = 0 и при нажатии на кнопку увеличивать альфу
2. Сделать чтобы оружие добавлялось в руки к герою через addChild(), только как реализовать.

Прошу помогите, хотя бы логику понять.

Заранее благодарен за ответы!

Старый 10.06.2011, 10:48
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 2  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
2. Сделать чтобы оружие добавлялось в руки к герою через addChild(), только как реализовать.
Через addChild() реализовать

Есть еще третий вариант - изначально нарисовать героя с мечем и без меча. И когда брать меч - просто менять картинку, но этот вариант подойдет только если у вас на всю игру будет 1-3 меча, а то рисовать запаритесь.

Так же можно для меча сделать пустой мувиклип, но чтоб с именем был. и добавлять меч в него. что-то типа:

myHero.swordHolder.addChild();

ну а swordHolder - разместить в руке уже как положено, кроме того в него потом можно будет много чего полезного пихать, посох там какой-то, цветы для бабы мечты.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.06.2011, 10:52
royality вне форума Посмотреть профиль Отправить личное сообщение для royality Найти все сообщения от royality
  № 3  
Ответить с цитированием
royality

Регистрация: Nov 2010
Сообщений: 7
Ооо, спасибо за такой быстрый ответ. Сделать контейнер для меча и туда заливать. только вот у меня проблема я не могу взаимодействовать из своего главного класса с уже созданными во флеше мувиклипами, то есть:

Если дать им instance name, то Flash Builder просто не видит их.
А если дать контейнеру класс для взаимодействия, то как я его вставлю в руку?

Если можно немного проясните. Заранее спасибо

Старый 10.06.2011, 10:56
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 4  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Код AS3:
myHero.swordHolder.addChild();
"Не видит" и "не может взаимодествовать" - это разные вещи. То что не видит - да, а взаимодействует нормально.

Если стремно через точку то можно юзать myHero.getChildByName("swordHolder").addChild();

С проверками соответственно нашли такой чилд по имени или не нашли.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Регистрация: May 2008
Адрес: Новокузнецк
Сообщений: 219
Записей в блоге: 1
Без разницы, любой вариант пойдет.
1.вариант проще, делай его.
Если, нужно разное оружие, тогда создай клип (оружие) в кадрах размести разное оружие и в зависимости от выбора оружия, переключай кадры.
__________________
Книги и желание лучшие учителя.

Старый 10.06.2011, 10:58
royality вне форума Посмотреть профиль Отправить личное сообщение для royality Найти все сообщения от royality
  № 6  
Ответить с цитированием
royality

Регистрация: Nov 2010
Сообщений: 7
Всем спасибо за ответы. Сейчас попробую

Добавлено через 13 минут
Блин. все равно не получается от чего-то. Может я что-то не правильно делаю?

я делаю так:
Код AS3:
		private var hero = new MyHero();
		private var sword:Sword = new Sword();
		private var swordButton:SwordButton = new SwordButton();
 
public function testGame()
		{
			addChild(swordButton);
                        swordButton.addEventListener(MouseEvent.CLICK, clicked);
 
			addChild(hero);
			hero.x = 400;
			hero.y = 200;
 
			hero.gotoAndStop('stop'); //Заставляю героя находиться в состоянии стоп
	}
 
private function clicked(e:MouseEvent):void
{
hero.swordHolder.addChild(Sword);
}
И так же не получается у меня увязать с instance name ничего. если создам допустим шарик и дам инстанс ему: Ball

то не могу из класса взаимодействовать с ним. как быть?


Последний раз редактировалось royality; 10.06.2011 в 11:15.
Старый 10.06.2011, 11:16
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
hero.swordHolder.addChild(Sword);
Не класс Sword, а его экземпляр - private var sword:Sword = new Sword(); То есть с маленькой буквы))
__________________
Reality.getBounds(this);

Старый 10.06.2011, 11:18
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 8  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
ну а ошибки какие?

Вроде всё ок, при условии что у MyHero есть внутри мувик с инстансНеймом swordHolder

Добавлено через 38 секунд
Да, втыкнул.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 10.06.2011, 11:19
royality вне форума Посмотреть профиль Отправить личное сообщение для royality Найти все сообщения от royality
  № 9  
Ответить с цитированием
royality

Регистрация: Nov 2010
Сообщений: 7
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Не класс Sword, а его экземпляр - private var sword:Sword = new Sword(); То есть с маленькой буквы))
Спасибо) и вправду я не правильно написал.

Добавлено через 1 минуту
Цитата:
Сообщение от Dukobpa3 Посмотреть сообщение
ну а ошибки какие?

Вроде всё ок, при условии что у MyHero есть внутри мувик с инстансНеймом swordHolder

Добавлено через 38 секунд
Да, втыкнул.
А если swordHolder находится в мувиклипе рука, который не обозначен как класс но является составной частью MyHero? то как быть?

Старый 10.06.2011, 11:21
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 10  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Тогда придется руке дать инстанснейм и стучаться в холдер через руку.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Теги
инвентарь , РПГ
Опции темы
Опции просмотра

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

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


 


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


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