gpt4 book ai didi

java - LibGDX Scene2D : Applying Actions to Actors in separate class

转载 作者:行者123 更新时间:2023-12-01 12:38:26 25 4
gpt4 key购买 nike

当 Actor 位于单独的类中时,我无法让 MoveToAction 在 Actor (menuBackground) 上工作。我在下面附加了相关代码 - 这根本不会使 Actor 移动。

我已成功将其他操作应用于 MainMenuScreen 类中的根阶段以及 MainMenuScreen 类中的不同 Actor(按钮),但没有成功将操作应用于单独类中的 Actor。

我尝试将 MoveToAction 放入 MenuBackground 类中的 act(float delta) 方法中,但这也不起作用。将 MoveToAction 分配给 MainMenuScreen 类中的 menuBackground 也没有。

请注意,我正在调用 super.act(delta);在我的 MenuBackground 类中。

我最终希望将 MoveToAction 的代码放在 Actor MenuBackground 类中,以使事情变得整洁。

干杯。

包含阶段的类:

public class MainMenuScreen implements Screen
{
private Stage stage;
public MainMenuScreen()
{
stage = new Stage(new FitViewport(800, 480));
Gdx.input.setInputProcessor(stage);

menuBackground = new MenuBackground();
MoveToAction moveToAction = new MoveToAction();
moveToAction.setPosition(242f, 276f);
moveToAction.setDuration(10f);
menuBackground.addAction(moveToAction);
stage.addActor(menuBackground);

@Override
public void render(float delta)
{
Gdx.gl.glClearColor(0, 0, 0, 0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
...
}

Actor 类别:

public class MenuBackground extends Actor
{
private Texture menuBackgroundTexture;
private float actorX;
private float actorY;

public MenuBackground()
{
menuBackgroundTexture = new Texture(Gdx.files.internal("data/menuTitleTexture.png"));
actorX = 242f;
actorY = 350f;
setBounds(actorX,actorY,316,128);
}

@Override
public void draw(Batch batch, float alpha)
{
batch.draw(menuBackgroundTexture,actorX,actorY);
}

@Override
public void act(float delta)
{
super.act(delta);
}
...
}

最佳答案

问题出在您的 draw() 方法内部。

查看代码绘制纹理,它使用 actorXactorY 这实际上是不会更改其值的字段。

正确的做法是:

batch.draw(menuBackgroundTexture, getX(), getY(), getWidth(), getHeight());

因此,您应该使用 actor 自己的字段和 getter,而不是管理您的字段和 getter。

关于java - LibGDX Scene2D : Applying Actions to Actors in separate class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com