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

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

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

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Работа с инерцией

Доброго времени суток
Вопрос, пытаюсь кораблик двигаться по инерции. Но когда он летит по оси Y вниз, то код "инерции" не срабатывает.

ещё вопрос, можно ли чего добавить, что бы получить более близкую к физике инерцию, не шибко усложняя код. Цели добиться идеала нет и по этому код самый простой
Код AS3:
ship.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey);
function fl_MoveInDirectionOfKey(event: Event)
{
 
	if (start)
	{
		if (ship.x > 1597)
		{
			ship.x = 3;
		}
		if (ship.x < 3)
		{
			ship.x = 1597;
		}
		if (ship.y > 897)
		{
			ship.y = 3;
		}
		if (ship.y < 3)
		{
			ship.y = 897;
		}
		if (rightPressed)
		{
			ship.rotation += 8;
		}
		if (leftPressed)
		{
			ship.rotation -= 8;
		}
		if (upPressed)
		{
			if (a <= 6) //ускорение
			{
				a += 0.2;
			}
			radians = ship.rotation * Math.PI / 180;
			vectorX = Math.cos(radians);
			vectorY = Math.sin(radians);
			ship.x = ship.x - speed * vectorX * a;
			ship.y = ship.y - speed * vectorY * a;
			Vx = speed * vectorX * a;
			Vy = speed * vectorY * a;
		}
		else
		{
			if ((Vx * s > 0.4) || (Vx * s < - 0.4))
			{
				ship.x -= Vx * s;    //s - замедление
				Vx = Vx * s;
			}
			if ((Vy * s > 0.4) || (Vx * s < - 0.4))
			{
				ship.y -= Vy * s;
				Vy = Vy * s;
			}
			a = 0.4;
		}
	}
}
Добавлено через 7 часов 6 минут
всё спасиб, с ошибкой разобрался, в коде переменные попутал
Код AS3:
if ((Vy * s > 0.4) || (Vx * s < - 0.4))
Второй вопрос в принципе актуален


Последний раз редактировалось neonoviiwolf; 09.07.2014 в 12:55.
Создать новую тему   Часовой пояс GMT +4, время: 18:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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