gpt4 book ai didi

java - LibGdx 如何编程 HP Bar?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:46:54 25 4
gpt4 key购买 nike

我目前正在尝试使用 LibGdx 编写游戏程序。我的游戏有很多结构部分,我现在正在寻求让游戏向玩家返回信息。我能想到的最简单的 UI 概念是 HP 条和弹药计数器(用于子弹、箭等)。这会通过我的 GameScreen 类中的舞台和 Actor 来完成吗?也许在渲染类中?或者这是第二个摄像头(在后台加载)?

我使用由 Map 和 MapRenderer 类支持的 GameScreen 类来实现我的显示。

我将寻求拆解 LibGdx 测试。任何让我脚踏实地的信息都会很好!

最佳答案

我前段时间使用过这段代码(暂时未测试)。它只使用两个相互重叠的 9-patch 。您可以使用 libgdx 的默认皮肤(来自测试资源的 uiskin)。

public class HealthBar extends Actor {

private NinePatchDrawable loadingBarBackground;

private NinePatchDrawable loadingBar;

public HealthBar() {
TextureAtlas skinAtlas = new TextureAtlas(Gdx.files.internal("data/uiskin.atlas"));
NinePatch loadingBarBackgroundPatch = new NinePatch(skinAtlas.findRegion("default-round"), 5, 5, 4, 4);
NinePatch loadingBarPatch = new NinePatch(skinAtlas.findRegion("default-round-down"), 5, 5, 4, 4);
loadingBar = new NinePatchDrawable(loadingBarPatch);
loadingBarBackground = new NinePatchDrawable(loadingBarBackgroundPatch);
}

@Override
public void draw(Batch batch, float parentAlpha) {
float progress = 0.4f;

loadingBarBackground.draw(batch, getX(), getY(), getWidth() * getScaleX(), getHeight() * getScaleY());
loadingBar.draw(batch, getX(), getY(), progress * getWidth() * getScaleX(), getHeight() * getScaleY());
}
}

请记住,您应该使用 AssetManager 来检索图集纹理,而不是像这样创建新的图集。

关于java - LibGdx 如何编程 HP Bar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21892694/

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