libgdx和scene2d中的自定义actor

时间:2015-01-22 14:20:23

标签: java libgdx

我是libgdx的新手,我很享受它为我提供的学习。

我目前正在创建一些自定义actor(扩展Actor类)并在屏幕上移动它们。

我的问题是,当使用setX(),setY()移动actor时,如何使用作为act方法的参数提供的传入的float delta来适当地缩放它?

实施例,

@Override
public void act(float delta) {

    if (wasTouched) {

        setY(getY() - .5f);
    }
}

如何使用三角形正确缩放移动?在libgdx Actor类中是否有内置函数?

1 个答案:

答案 0 :(得分:0)

没有内置功能。我不知道你的update方法是什么样的,所以我不知道手指按住它的每一帧wasTouched是否都是真的。

但是如果你想在按住手指的同时以一定的速度移动物体,那么首先你需要有一个所需的速度。它可以像

一样不变
private static final float SPEED_WHEN_TOUCHED = 5.0f; //in viewport units per second

或者它可能是一些随时间变化的变量,但不管怎样,它应该是每秒视口(世界)单位。

然后,当您想要以该速度移动某物时,将速度乘以增量时间(以秒为单位)以获得所需的运动量。

@Override
public void act(float delta) {
    if (wasTouched) {
        y += SPEED_WHEN_TOUCHED * delta;
        positionChanged();
    }
}