Texture Region 2D Array - 为什么我的精灵画得这么小?

Texture Region 2D Array - Why are my sprites drawing so small?

使用 Libgdx 框架,我从 Assets.java class 生成一个 Actor,然后根据他当前所处的状态绘制他。我遇到的问题是他出来的时候小得离谱。我注意到,当我将纹理拆分为区域时,与此处的纹理区域函数的单一声明相比,.Split() 函数不提供宽度和高度参数:new TextureRegion(Texture, x, y, width, height);

注意:我还设置了世界的大小、演员的大小等,他们不需要改变他有多小。我假设这与精灵大小或资产 class 有关。但是我切片纹理的方式非常适合我创建的引擎。

我想知道我是否遗漏了什么或要添加什么来定义 Assets.java [=] 中 TextureRegions 的 width/height 29=]代码片段?

我所有的精灵都在一个 512x512 的纹理中,高度和宽度都是 85px

相关代码:

rubenSprite = loadTexture("data/rubenSprite.png");
        rubenFrames = TextureRegion.split(rubenSprite, 85, 85);

        WalkF1 = rubenFrames[0][0];
        WalkF2 = rubenFrames[0][1];
        WalkF3 = rubenFrames[0][2];
        WalkF4 = rubenFrames[0][3];
        WalkF5 = rubenFrames[0][4];

... More TextureRegions

如果需要更多代码或任何详细说明,请告诉我。谢谢。

actor的大小不是里面贴图的大小。演员有界限。当这个边界太低时,图像无法容纳在里面。反之,则类似。 你应该将你的演员设置为:

setWidth(width);
setHeight(height);
setBounds(left, right, width, height);

并确保该纹理也设置为宽度和高度。

顺便说一句。 我建议将可绘制对象与 Actors 一起使用。它更清楚。您创建皮肤,在其中定义所有动作,然后从皮肤调用纹理。