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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 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 (но вообще будет больше).
все числа целые.

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

Старый 09.09.2011, 17:52
toFL вне форума Посмотреть профиль Найти все сообщения от toFL
  № 2  
Ответить с цитированием
toFL
Banned

Регистрация: May 2011
Адрес: +48° 27' 57.93", +35° 2' 46.02"
Сообщений: 447
Записей в блоге: 2
Отправить сообщение для toFL с помощью Skype™
Одно из рекомендаций: используйте целые x,y,width,height

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

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

Спрятал карту, показываю только ее кусок через copyPixels, но не помогло, тормоза остались.

Старый 10.09.2011, 09:47
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Этот эффект никак не убрать. Во флеше невозможно добиться качественной плавной анимации.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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