Показать сообщение отдельно
Старый 09.09.2011, 12:47
allanon85 вне форума Посмотреть профиль Отправить личное сообщение для allanon85 Найти все сообщения от allanon85
  № 1  
Ответить с цитированием
allanon85

Регистрация: May 2008
Сообщений: 106
Отправить сообщение для allanon85 с помощью ICQ Отправить сообщение для allanon85 с помощью Skype™
По умолчанию подергивание + вибрация

Приветствую.
есть контейнер, в нем лежит карта и персонаж.
персонаж и контейнер двигаются не зависимо друг от друга.

движение контейнера
Код AS3:
public function Update(e:Event):void
		{
			tarX = Math.round((Root.SW - player.width) / 2 - player.x);
			tarY = Math.round((Root.SH - player.height) / 2 - player.y);
			if (cont.x != tarX || cont.y != tarY)
			{				
				cont.x += Math.ceil((tarX - cont.x) / speed);
				cont.y += Math.ceil((tarY - cont.y) / speed);
			}				
		}
движение персонажа
Код AS3:
...
if (Math.abs(this.x - tarXY.x)>= speed)
	{
		this.x -=  (this.x - tarXY.x) / Math.abs(this.x - tarXY.x) * speed;
	}
 
if (Math.abs(this.y - tarXY.y)>= speed)
	{
		this.y -=  (this.y - tarXY.y) / Math.abs(this.y - tarXY.y) * speed;
	}
Насчет перса. Если выключить движение контейнера. то можно видеть небольшие скачки. Если контейнер двигается то скачков не заметно(возможно по тому что сам контейнер скачет)
Скорость фиксированная 5px

Движение контейнера при фпс 31 идет с заметными скачками, причем чем дольше, тем больше.
Уменьшение фпс до 21, практически полностью убирает скачки, но появляется вибрация фона(хорошо заметна на стыках между разными цветами, например между черным и белым)
Скорость меняется от 1 до 5, в зависимости от расстояния до цели.

Карту в контейнере делал 2-мя способами.
1. из мелких кусочков(битмапы)
2. одна сплошная битмапа.

размеры карты 1000х1000 (но вообще будет больше).
все числа целые.

Хотелось бы как то сгладить скачки и/или убрать вибрацию при низком фпс.