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

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

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

Регистрация: Jan 2013
Сообщений: 12
По умолчанию Не обновляет кординаты на энтер фрейм

Привет, суть такая - враг вычисляет только начальные координаты героя,а должен обновлять их, в чем проблема не пойму
класс игры, главный обработчик:
Код AS3:
//основной игровой обработчик
		private function enterFrameHandler(event:Event):void{
			// Расчет delta времени
 
	        _xPos = _hero.x;   
			_yPos = _hero.y;
			//Enemy.update(_xPos, _yPos);
			// Обработка врагов, находящихся в игровом мире
			for (var i:int = 0; i < _listOfEnemies.length; i++){
				(_listOfEnemies[i] as Enemy).update(_xPos, _yPos);
			}
 
		}
Класс врага, наследует пустой апдейт из другого класса и расширяет его. Если привязываю кординати например к мыше все работает норм.
Код AS3:
public override function update(xPos:Number, yPos:Number):void
		{
			// Временный код движения объекта
			// демонстрирующий работу класса
 
			var dx:Number = xPos - enemy.x;//находим дельта-Х
			var dy:Number = yPos - enemy.y;//находим дельта-У	
			var angle:Number = Math.atan2(dy,dx);//Тангент угла=противоположная/прилегающую 
			//enemy.rotation = angle * 180 / Math.PI;//Радианы в градусы
			if (xPos < enemy.x)
			{
				enemy.scaleX = - Math.abs( enemy.scaleX );
			}
			else
			{
				enemy.scaleX = Math.abs( enemy.scaleX );
			}
 
 
			if (Math.abs(dx)<=2&&Math.abs(dy)<=2) {//Сравниваем расстояние и скорость по-модулю, 
				speed = 0;							//если расстояние меньше - останавливаемся
			}
			else if (Math.abs(dx)>2&&Math.abs(dy)>2) {
				speed = _speedRandom;
			}
			_speedX = Math.cos(angle)*speed;//уравнение треугольника - имея гипотенузу(скорость),
			_speedY = Math.sin(angle)*speed;//находим противоположную и прилегающую 
			enemy.x += _speedX;									//стороны(скорости по х и у)
			enemy.y += _speedY;//увеличиваем положение на скорость
			//trace(dx,dy)	
 
		}

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

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

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


 


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


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