Генерирования игрового поля

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Ответить
mastaxys
Сообщения: 32
Зарегистрирован: 12 янв 2013, 14:41

Генерирования игрового поля

Сообщение mastaxys »

Доброго дня.
Недавно перелез на AS3 и столкнулся с такой проблемой:

Есть клип ячейки, из этой ячейки создаю поле через цикл.

В цикле в AS2 делал так:

Код: Выделить всё

var tmp = cell.duplicateMovieClip("cell" + a + "-" + s, n);
Но в AS3 эту команду убрали.
Подскажите, как сгенерировать поле из одного мувика на AS3?
ktibo
Сообщения: 38
Зарегистрирован: 15 авг 2011, 10:58

Re: Генерирования игрового поля

Сообщение ktibo »

Массивами. Элемент массива - объект класса ячейки.

Код: Выделить всё

var Arr:Array = new Array();Arr[i][j] = new cell();addChild(Arr[i][j]);
mastaxys
Сообщения: 32
Зарегистрирован: 12 янв 2013, 14:41

Re: Генерирования игрового поля

Сообщение mastaxys »

Спасибо. Это понятно.... но мне нужно вывести на сцену один клип "ПОЛЕ", в котором будут размножены ячейки. Чтобы оперировать не с кучей ячеек, а с одним мувиком. Не знаю правда понятно объяснил или нет ))
ktibo
Сообщения: 38
Зарегистрирован: 15 авг 2011, 10:58

Re: Генерирования игрового поля

Сообщение ktibo »

mastaxys, код вставить в класс tmp, например в конструктор.
mastaxys
Сообщения: 32
Зарегистрирован: 12 янв 2013, 14:41

Re: Генерирования игрового поля

Сообщение mastaxys »

Блин... на сцену вывожу клип Field вот код его класса:

Код: Выделить всё

package Clips{    //import Clips.cell;    import flash.display.*;    import flash.events.*;        public var cell_tmp:cell = new Clips.cell();     public class field extends Sprite    {         public function field()        {            var Arr:Array = new Array();            var stroka:Number = 20;            var stolbec:Number = 20;                        for (var i=0; i == stroka; i++) {                for(var j=0; j == stolbec; j++) {                    Arr[i][j] = new cell_tmp();                    addChild(Arr[i][j]);                }            }        }             }//End Class}//End package 
Ошибка при объявлении public var cell_tmp...
5006: Файл ActionScript не может иметь более одного внешнего определения: Clips.cell_tmp, Clips.field
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Генерирования игрового поля

Сообщение Casperovskii »

mastaxys
Так ты же объявил cell_tmp как переменную, а в коде используешь её как конструктор. Так делать же нельзя.

Код: Выделить всё

Arr[i][j] = new cell_tmp();
Заменить на

Код: Выделить всё

]Arr[i][j] = new Clips.cell();
вроде как нужно.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: Генерирования игрового поля

Сообщение Alazaur »

Ога и имя пакета перед классом не надо, так же удалить определение переменной вне класса, ну и циклы какие-то странные. Вот вобщем проще вам целиком переделать, сравните сами посмотрите где были ошибки:

Код: Выделить всё

package Clips{    import flash.display.Sprite;        public class field extends Sprite    {        public function field()        {            var rows:int = 20;            var cols:int = 20;                        for (var i:int = 0; i < rows; i++)            {                for(var j:int = 0; j < cols; j++)                {                    var mc:cell = new cell;                    mc.x = j * mc.width;                    mc.y = i * mc.height;                    addChild(mc);                }            }        }    }}
Да и кстати у вас имя пакета с большой буквы, а имена классов с маленькой, а как бы правильней делать наоборот.
mastaxys
Сообщения: 32
Зарегистрирован: 12 янв 2013, 14:41

Re: Генерирования игрового поля

Сообщение mastaxys »

Да, спасибо, всё получилось... Запутался в классах ))
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Генерирования игрового поля

Сообщение Casperovskii »

А можно я задам свой вопрос? Пробовал на Си++ генерить поле 50х50, так это было жутко долго. Каким образом у тебя это реализовано, через циклы же? Просто создание 2500 объектов реально грузит. Или к этому процессу стоит сделать прогресс бар просто?
mastaxys
Сообщения: 32
Зарегистрирован: 12 янв 2013, 14:41

Re: Генерирования игрового поля

Сообщение mastaxys »

Да, через циклы. прогресс бар обязательно.. Но задумка всё равно не удалась (( Большое количество объектов реально грузит плеер. Значит пойду по другому пути: буду грузить в базу чисто координаты, а уже по ним только там где нужно буду выводить клипы.
Ответить