Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   подергивание + вибрация (http://www.flasher.ru/forum/showthread.php?t=167289)

allanon85 09.09.2011 12:47

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

движение контейнера
Код 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 (но вообще будет больше).
все числа целые.

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

toFL 09.09.2011 17:52

Одно из рекомендаций: используйте целые x,y,width,height

allanon85 09.09.2011 19:28

toFL, числа целые

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

dimarik 10.09.2011 09:47

Этот эффект никак не убрать. Во флеше невозможно добиться качественной плавной анимации.


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

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