使用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
如果需要更多代码,或任何详细说明,请告诉我。谢谢。
答案 0 :(得分:1)
演员的大小不是里面的纹理大小。演员有边界。当这个边界太低时,图像无法适应内部。相反,它是类似的。 你应该将你的演员设置为:
setWidth(width);
setHeight(height);
setBounds(left, right, width, height);
并确保该纹理也设置为宽度和高度。
顺便说一句。 我建议,使用带有Actors的drawables。它更清晰。您可以创建皮肤,在其中定义所有移动,然后从皮肤调用纹理。