|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2017
Сообщений: 30
|
Проблема с передвижением обекта
Проблему описал после кода, код прокоментирован.
Функцию пересечения с обектами вирезал, сначала хочу тут разобраться var number:int; var grav:int = 0; var gravity:int = 1; var MaxJump:int = -10; var xrot, yrot:int; var score:Number = 0; var zoneScore:MovieClip = new zone(); zoneScore.visible = false; var ScoreText:String = "0"; var NumberColumn:int = 0; stop(); //текстове поле var TextScore:TextField = new TextField(); var format:TextFormat = new TextFormat(); format.bold = true; format.size = 100; format.font = "Adventure"; format.color = 0xffffff; TextScore.defaultTextFormat = format; addChildAt(TextScore, 2); TextScore.x = 250; TextScore.y = 80; TextScore.selectable = false; TextScore.text = "" + score; //конец параметров текстового поля stage.addEventListener(Event.ENTER_FRAME, polet);//Перемещение птички и колон function polet(e:Event):void{ grav += gravity; bird.y += grav; if(bird.y - 20<=0){bird.y=20} if(bird.y-20>=500){bird.y = 500;bird.rotation = 0;} zoneScore.x -= 8; for(var i = 0;i<colonaMasDown.length;i++){ colonaMasDown[i].x -= 8; colonaMasUp[i].x -= 8; } } stage.addEventListener(KeyboardEvent.KEY_DOWN, Jump);// функция управления птичкой function Jump(e:KeyboardEvent):void{ if(e.keyCode == 32){ grav = 0; grav = MaxJump; bird.y += grav; } } var colonaMasDown:Array = new Array();//Масив нижних колон var colonaMasUp:Array = new Array();//Верхних колон var colonaMasUpC = [75,0,150];//Координати верхних колон var colonaMasDownC = [500,400,550];//Нижних var timer:Timer = new Timer(1500, 0);//Спавн колон и зони пересечения для счета очков timer.addEventListener(TimerEvent.TIMER, spawn); timer.start(); function spawn(e:TimerEvent):void{ NumberColumn++; // количество колон number = Math.random()*3+0; //рандомний вибор пакета координат colonaMasDown[NumberColumn] = new colonaDown(); //Обявление нижних колон colonaMasUp[NumberColumn] = new colonaUp(); //Верхних yrot = colonaMasDownC[number];yrot = colonaMasUpC[number]; //игрек координата для одной пари колон addChild(colonaMasDown[NumberColumn]); //Добавление колони colonaMasUp[NumberColumn].x = 550;colonaMasUp[NumberColumn].y = yrot; //Ставим координати текущей колони(Верхней) addChild(colonaMasUp[NumberColumn]); //Добавление колони colonaMasDown[NumberColumn].x = 550;colonaMasDown[NumberColumn].y = yrot; //Координати нижней колони addChild(zoneScore); //Добавление зони пересечения zoneScore.x = colonaMasDown.x + 70 ;zoneScore.y = 250; //установка ее координатов } Викидает проблему, что отсюда for(var i = 0;i<colonaMasDown.length;i++){ colonaMasDown[i].x -= 8; colonaMasUp[i].x -= 8; } не имеет параметров : "TypeError: Error #1010: A term is undefined and has no properties."; Дальше код не идет и колони не передвигаються, проект типа игра Флеппи Берд. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну, судя по ошибке, у Вас в массиве colonaMasUp меньше элементов, чем в массиве colonaMasDown.
Цикл настроен по длине colonaMasDown и начинает требовать и-тый элемент от colonaMasUp, в котором нет элементов с таким большим индексом. Добавлено через 20 минут либо наоборот, в массивах отсутствуют элементы с индексом 0, так как var NumberColumn:int = 0; а спаун начинается с NumberColumn++, то есть первые колонны в массивах будут иметь индекс 1, а не 0.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Feb 2017
Сообщений: 30
|
Спасибо первий ответ помог в самой проблеме, второй при правильном построении колон!)
|
Часовой пояс GMT +4, время: 21:26. |
|
« Предыдущая тема | Следующая тема » |
|
|