Как использовать CitrusSprite.velocity
У меня есть следующая функция в сцене, которая расширяет citrus.core.starling.StarlingState
- загружает PlayerRun
анимация и отображает ее на экране. По большей части этот код работает: я вижу спрайт на экране (он работает на месте).
protected final override function DrawScene ():void
{
Player = new CitrusSprite ( "Player" );
Player.velocity = [60, 0]; // Doesn't seem to have an effect
Player.x = 40;
Player.y = 40;
var oClip:MovieClip = new MovieClip ( Resources.getTextures (
"PlayerRun" ), 24 );
Player.view = oClip;
add ( Player );
}
Я не уверен, как я должен использовать velocity
свойство - для него нет документации, и независимо от того, какие числа я использую в приведенном выше коде, оно не меняет отображение: анимация воспроизводится, но спрайт неподвижен (он не движется горизонтально, как я ожидал).
Я использую velocity
недвижимость неправильно? Поддерживает ли Citrus скорость спрайтов, или я должен сам это реализовать?
2 ответа
Как выясняется, CitrusSprite
имеет свойство, updateCallEnabled
это false
по умолчанию и отключает звонки update()
, Однажды я установил это свойство на true
код начал работать как положено.
Я еще не использовал Citrus, но, глядя на исходный код, он должен работать так же, как вы, предполагая, что update
метод вызывается на вашем плеере:
Вы можете посмотреть, как velocity
Недвижимость работает в следующих местах:
- Геттер и сеттер для
velocity
, - Цикл обновления для
CitrusSprite
, MathVector
тип, используемый дляvelocity
внутренне.
Я подозреваю, что вам нужно добавить плеер к чему-то, что поставит его в очередь на обновление.