纹理区域2D阵列 - 为什么我的精灵画得那么小?

时间:2015-04-11 19:26:13

标签: java libgdx

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

注意:我还设置了世界的大小,演员的大小等,他们不需要改变他的小。我假设它与精灵大小或资产类有关。但是我正在切割纹理的方式对于我创建的引擎来说非常有效。

我想知道在 Assets.java 代码段中是否存在我缺少的内容或要添加的内容以定义TextureRegions的宽度/高度?

我所有的精灵都是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

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

1 个答案:

答案 0 :(得分:1)

演员的大小不是里面的纹理大小。演员有边界。当这个边界太低时,图像无法适应内部。相反,它是类似的。 你应该将你的演员设置为:

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

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

顺便说一句。 我建议,使用带有Actors的drawables。它更清晰。您可以创建皮肤,在其中定义所有移动,然后从皮肤调用纹理。