gpt4 book ai didi

java - 使用标签创建的分数字符串在分数动态变化时不会删除以前的分数-LibGdx

转载 作者:行者123 更新时间:2023-12-02 12:57:24 24 4
gpt4 key购买 nike

在我的游戏 UI 中,我在方框图像上有一个标签来写分数。

private void drawNoOfCoins() {
Label.LabelStyle style = new Label.LabelStyle();
style.font = game.font2;
Label totalCoinLabel = new Label(coinScoreController.getTotalCoinString(), style);

totalCoinLabel.setPosition(showcoinImage.getWidth() / 2,Constants.WORLD_HEIGHT - 2 * totalCoinLabel.getHeight());
stage.addActor(totalCoinLabel);

totalCoinLabel.setBounds( showcoinImage.getX(), showcoinImage.getY(),showcoinImage.getWidth(), showcoinImage.getHeight());
totalCoinLabel.setAlignment( Align.center );
}

private void ShowCoinScoreBox() {
showcoinImage = new Image(showScoreTexture);
showcoinImage.setPosition(Constants.WORLD_WIDTH / 42,Constants.WORLD_HEIGHT - (showcoinImage.getHeight() * 1.5f));
stage.addActor(showcoinImage);
}

我在 render() 中调用此方法 drawNoOfCoins() 并且分数会动态更新。

但是每次分数动态变化时,更新的分数都会显示在之前的分数之上。这个问题是因为标签还是其他原因造成的?怎么解决呢?

最佳答案

ApplicationListenercreate() 或从Screen 接口(interface)的 show() 方法用于初始化。您将在渲染调用中创建新的 Actor 并将它们添加到舞台中。

在全局而不是本地保留 totalCoinLabel 的引用。

private Label totalCoinLabel; 

private void drawNoOfCoins() {
Label.LabelStyle style = new Label.LabelStyle();
style.font = game.font2;
totalCoinLabel = new Label(coinScoreController.getTotalCoinString(), style);

...
}

内部render()方法更新标签文本

totalCoinLabel.setText(coinScoreController.getTotalCoinString());

关于java - 使用标签创建的分数字符串在分数动态变化时不会删除以前的分数-LibGdx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44384045/

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