Среда, 20 Ноября 2024, 12:17

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Массив обьектов.
ggmanДата: Пятница, 04 Ноября 2011, 01:11 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Помогите пожалуйста разобраться.

Создаю мувиклип, в свойствах прописываю ему клас, например, "Monk". Тепрь мне нужно создать массив этих обьектов.
Я делаю это так:

Code
var Monks:Array = new Array(Monk);
Monks[0].x=100;
Monks[0].y=100;
Monks[1].x=200;
Monks[1].y=200;


но при запуске в указаных точках пусто.
Пожалуйста подскажите как правильно создать массив своих обьектов и правильно с ними работать.
Заранее спасибо.
Ghost_in_the_shellДата: Пятница, 04 Ноября 2011, 06:21 | Сообщение # 2
участник
Сейчас нет на сайте
может ты addChild() забыл?
noTformaTДата: Пятница, 04 Ноября 2011, 10:21 | Сообщение # 3
Ukrainian independent game developer
Сейчас нет на сайте
Quote (ggman)
var Monks:Array = new Array(Monk);
Monks[0].x=100;
Monks[0].y=100;
Monks[1].x=200;
Monks[1].y=200;

если Monk, это класс, то почему ты его передаешь в конструктор Array???

var Monks:Array = new Array();//создаем новый массив
var myMonk:Monk = new Monk();//создаем объект класса "Monk"
Monks.push(myMonks);//добавляем myMonk в массив Monks smile

Добавлено (04.11.2011, 10:21)
---------------------------------------------
и теперь чтобы получить объект myMonk обратно:

var tempMonk = Monks[0] as Monk; //получаем первый элемент в массиве Monks и приводим его к классу Monk;


@noTformaT
ggmanДата: Пятница, 04 Ноября 2011, 13:02 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Ага, более мение понятно, а чтобы Monks[0] записать в Tween. вместо имени обьекта прописывать tempMonk, я правильно понял?
ПРостокак-то все это сложно. Напрямую с элементом масива работать, я так понял нельзя?
noTformaTДата: Пятница, 04 Ноября 2011, 13:16 | Сообщение # 5
Ukrainian independent game developer
Сейчас нет на сайте
Quote (ggman)
Ага, более мение понятно, а чтобы Monks[0] записать в Tween. вместо имени обьекта прописывать tempMonk, я правильно понял?
ПРостокак-то все это сложно. Напрямую с элементом масива работать, я так понял нельзя?

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


@noTformaT
ggmanДата: Пятница, 04 Ноября 2011, 19:00 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Ввел все вроди правильно

Code
var pasasgirs:Array = new Array(); // это массив мувиклипа  
var MYpasasgir:pasasgir = new pasasgir();
pasasgirs.push(MYpasasgir);

var tempPasasgir = pasasgirs[0] as pasasgir;

tempPasasgir.x=100;
tempPasasgir.y=100;


, по теперь вообще выдает ошибку

1046: Тип не найден или не является константой времени компиляции: pasasgir.

Может я не правильно что-то делаю. Я создаю клас заходя в свойства мувиклипа и в стройче "Клас" раздела "связывание" пишу pasagir. Все правильно, или делать надо не так?
noTformaTДата: Пятница, 04 Ноября 2011, 19:08 | Сообщение # 7
Ukrainian independent game developer
Сейчас нет на сайте
заполни так:


var pasasgirs:Array = new Array(); // это массив мувиклипов
var MYpasasgir:pasasgir = new pasasgir(); // создаем новый мувиклип
pasasgirs.push(MYpasasgir); //засовываем мувиклип в массив

var tempPasasgir:pasasgir = pasasgirs[0] as pasasgir; //получаем первый элемент массива

//* устанавливаем позицию.
tempPasasgir.x=100;
tempPasasgir.y=100;

Но нафиг тебе массив вообще?


@noTformaT
ggmanДата: Пятница, 04 Ноября 2011, 19:26 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Хм, все так и заполнено же вроде?

Или в моем случае надо по другому заполнять?

Массив мне нужен так-как пасажиров будет много, а облаков с которыми они сталкиваются еще больше, и нужно динамически просчитывать взаимодействие между ними. Поэтому я хочу сделать два массива и запустить цыкл, который будет переберать массив и проверять кто с кем столкнулся.
noTformaTДата: Пятница, 04 Ноября 2011, 19:28 | Сообщение # 9
Ukrainian independent game developer
Сейчас нет на сайте
ggman, у тебя в pasasgirs в начале стоят пробелы????

@noTformaT
ggmanДата: Пятница, 04 Ноября 2011, 19:40 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
ЭЭ... не совсем понял где? В стоках названияи класса - нет не стоят
noTformaTДата: Пятница, 04 Ноября 2011, 19:42 | Сообщение # 11
Ukrainian independent game developer
Сейчас нет на сайте
ggman, в "свойствах клипа"

@noTformaT
ggmanДата: Пятница, 04 Ноября 2011, 19:53 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
В свойстах ролика инбоксы "Имя" "Класс" - пробелы не стоят.
FenrireДата: Суббота, 05 Ноября 2011, 12:51 | Сообщение # 13
почетный гость
Сейчас нет на сайте
А клипы уже лежат на сцене?
Или ты их добавляешь динамически?
Пока что ты просто создал экземпляр класса и пихнул его в массив.
Может сперва так сделать?

var pasasgirs:Array = new Array();
var MYpasasgir:pasasgir = new pasasgir();

addChild(MYpasasgir); //сперва добавляем на сцену

pasasgirs.push(MYpasasgir); //потом в массив

Или циклом к примеру, если у тебя их много:

for(var i:int = 0; i < 10; i ++) //скок надо столько и ставим
{
addChild(MYpasasgir);
pasasgirs.push(MYpasasgir);
}

и потом так же циклом обращаешься к клипам через массив

for( var k:int; k < pasasgirs.length; k++)
{
//выполняем действия с pasasgirs[k]
}

Если я правильно понял вопрос, то по идее должно работать)


Сообщение отредактировал Fenrire - Суббота, 05 Ноября 2011, 13:04
ggmanДата: Воскресенье, 06 Ноября 2011, 00:44 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Я не понимаю, какая-то ерунда.
Включил комп, зашел в чистый Создал мувиклип, зашел в свойства, заполнил так:


Затем написал код:

Code
var pasasgirs:Array = new Array();  
var MYpasasgir:pasasgir = new pasasgir();  

addChild(MYpasasgir); //сперва добавляем на сцену  

pasasgirs.push(MYpasasgir); //потом в массив  

var tempPasasgir = pasasgirs[0] as pasasgir;

tempPasasgir.x=100;
tempPasasgir.y=100;


Но, при компиляции получаю ошибки:



НУ ЧТОЯ НЕПРАВИЛЬНО ДЕЛАЮ????
FenrireДата: Воскресенье, 06 Ноября 2011, 18:20 | Сообщение # 15
почетный гость
Сейчас нет на сайте
давай исходник чтоли, поглядим
ggmanДата: Понедельник, 07 Ноября 2011, 00:06 | Сообщение # 16
постоянный участник
Сейчас нет на сайте
Качайте, смотрите, помогите)))
ezhekaДата: Понедельник, 07 Ноября 2011, 01:49 | Сообщение # 17
почетный гость
Сейчас нет на сайте
не указал что твой пассажир - клип, и не прописал в импорте клипы

текущее
FenrireДата: Понедельник, 07 Ноября 2011, 10:00 | Сообщение # 18
почетный гость
Сейчас нет на сайте
Мде...
Не помню кто, но кто-то мне сказал: инстанс имена с маленькой, классы с Большой буквы.
поменяй название класса у клипа, чтобы начиналось с заглавной.
потом в коде поправь обращение к классу тоже на заглавные:

var pasasgirs:Array = new Array();
var MYpasasgir:Pasagir = new Pasagir();

addChild(MYpasasgir); //сперва добавляем на сцену

pasasgirs.push(MYpasasgir); //потом в массив

var tempPasasgir = pasasgirs[0] as Pasagir;

tempPasasgir.x=100;
tempPasasgir.y=100;

и будет тебе счастье)
noTformaTДата: Понедельник, 07 Ноября 2011, 11:25 | Сообщение # 19
Ukrainian independent game developer
Сейчас нет на сайте
ggman, ты случайно не на ас2 пишеш?

Quote (Fenrire)
Не помню кто, но кто-то мне сказал: инстанс имена с маленькой, классы с Большой буквы.
поменяй название класса у клипа, чтобы начиналось с заглавной.
потом в коде поправь обращение к классу тоже на заглавные:

мммм, это официальное оформление адоб диктует такие правила, но на самом деле это не существенно smile


@noTformaT
ggmanДата: Понедельник, 07 Ноября 2011, 11:45 | Сообщение # 20
постоянный участник
Сейчас нет на сайте
as3
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг