PDA

Просмотр полной версии : Задержка анимации


Vansimar
18.10.2011, 09:33
public function Basic_map()
{
this.scrollRect = new Rectangle(0, 0, this.width, 420);
this.cacheAsBitmap = true;

Game.gameLink.stage.addEventListener(KeyboardEvent.KEY_DOWN, goRight);
trace("Some");
}


public function goRight(e:KeyboardEvent):void
{
var rect:Rectangle = this.scrollRect;
if (e.keyCode == 39)
{

rect.x += 10;

this.scrollRect = rect;
}
if (e.keyCode == 37)
{

rect.x -= 10;

this.scrollRect = rect;
}
}

Добавлено через 1 минуту
и получается, я нажимаю кнопку, происходит смещение на 10 пискселов, задержка,и потом продолжает движение,как избавится от этой задержки?

-De-
18.10.2011, 09:46
В панели управления в свойствах клавиатуры уменьшить задержку перед началом повтора.

Vansimar
18.10.2011, 09:47
и что,получается это должен делать каждый игрок?

goodguy
18.10.2011, 10:06
Это не правильное решение в принципе. Я не о задержке,а об управлении таким образом.
Я бы сделал иначе. Завел бы пару переменных, типа

var _leftKeyPressed:Boolean = false;
var _rightKeyPressed:Boolean = false;

Потом в обработчике клавиатуры проверял, если нажата стрелка влево или вправо, менял бы на true соответствующую переменную.
А уже в обработчике энтерфрейма проверял бы значение этих переменных, и если оно true, двигал бы объекты в соответствующем направлении.
Это самый примитивный способ решения, но рабочий.

Vansimar
18.10.2011, 10:20
да да_спасибо) я вспомнил про это)уже сталкивался с этим и забыл) только я немного по другому делал, но в общем счете так же)