PixiJS: случайное вращение и снижение скорости - PullRequest
1 голос
/ 10 июля 2019

Я пытаюсь получить простое случайное «вращение» на основе свойства угла, и хотел бы добиться следующего:

  • Случайное вращение, скажем «повернуть» на 500 градусов
  • Начните с высокой скорости и, приближаясь к «повернутым» градусам, уменьшите «вращающуюся» скорость, чтобы остановка не была мгновенной.

Я изложил основную концепциюпытаюсь добиться по этой ссылке: https://www.pixiplayground.com/#/edit/yalRPEN~6tg3seIHq5hbI

В функции animate, если я поставлю let степени = 2000;в качестве значения Math.Random он запутывает анимацию, поскольку кажется, что эта анимационная функция вызывается много раз?

Кроме того, я попытался использовать свойство speed, которое начиналось бы с высокого значения и начинало уменьшатьсяс "вращениями", но, кажется, ничего не делает?Также пытался использовать animationSpeed, так как я использую свойство угла для изменения градусов, но я не вижу разницы в скорости.

Любая обратная связь будет оценена.

Спасибо

1 Ответ

3 голосов
/ 10 июля 2019

Один из подходов заключается в изменении угла, а не скорости. Примерно так:

var angleStep = 40;
let rotateSpeed = Math.floor(Math.random() * 300)

function animate() {
    bunny.angle += angleStep;

    angleStep = angleStep - angleStep/rotateSpeed;

    if ((angleStep.toFixed(1) <= 0.0)) {
        console.log("stopped rotation")
        bunny.angle = bunny.angle;
        return bunny.angle;
    } else {
        requestAnimationFrame(animate);
    }
}
...