Форум 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=133850)

megapup 14.12.2009 21:05

Область перерисовки не успевает за объектом
 
Вложений: 1
почему то при быстром перемещении спрайта с битмапом, этот самый битмап не успевает отрисовываться
на картинке справа шарик без движения, слева при перемещении
красным область перерисовки
почему так происходит?

Psycho Tiger 14.12.2009 21:18

Странно. Дайте код.

megapup 14.12.2009 21:31

примерно такой
Код AS3:

ball = new Sprite();
var Btm:Bitmap =  из файла
ball.addChild(Btm);
//...
stage.addEventListener(Event.ENTER_FRAME, ef);
//...
function ef()
{
        ball.x+=1;
        ball.y+=1;
        //...
}


tofflife 14.12.2009 21:42

А если попробовать так?

Код AS3:

ball = new Sprite();
var Btm:Bitmap =  из файла
var percent:Number = 0;
const startX : Number = 0;
const startY : Number = 0;
const destX : Number = 520;
const destY : Number = 390;
ball.addChild(Btm);
//...
stage.addEventListener(Event.ENTER_FRAME, ef);
//...
 
 
function ef()
{
        ball.x = (destX - startX) * (percent / 100);
        ball.y = (destX - startX) * (percent / 100;
        percent = percent + 0.1;
        if (percent >= 100)
        {
              stage.removeEventListener(Event.ENTER_FRAME, ef);
        }
        //...
}

Так рекоммендуют делать во многих пособиях по играм.

megapup 14.12.2009 21:57

дак попробывать конечно можно) но у меня то закон перемещения свой)
может есть другой метод анимации, не в Event.ENTER_FRAME ?

Psycho Tiger 14.12.2009 23:04

Гм, как будто процессор не успевает за перерисовкой...
Выложи swf`ку :)

alatar 16.12.2009 06:16

Вам надо шашеки или ехать? Вас не устраивает только отображение области перерисовки или есть еще какие-то проблемы?

megapup 16.12.2009 22:24

Вложений: 1
вот swf-ка и код, но дело в том что наблюдается глюк не всегда, при определенных условиях, нужно немного подождать или попытаться изменить скорость (var speed)

iflamberg 16.12.2009 22:31

такой глюк происходит, возможно, из-за того, что вы назначаете битмапу не целые кординаты. Попробуйте
Код AS3:

ball.x=Math.round(ballX+=vector.x*speed);
                        ball.y = Math.round(ballY += vector.y * speed);


Psycho Tiger 16.12.2009 22:35

О боже, код читать ваш очень сложно...
Код AS3:

addChild(ball.addChild(new BallPic).parent);

Я умер.
Код AS3:

ball.x=ballX+=vector.x*speed;
ball.y=ballY+=vector.y*speed;

Добило трупа.
В общем, картинки когда на дробных координатах располагаются - подобные спецэффекты и появляются.


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

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