0

我正在制作一个游戏(libgdx & box2d),其中随机生成的行星上有摩天大楼——见下图。

摩天大楼的位置、宽度和高度是随机的。我现在正在寻找纹理这些的最佳方法。

这是一个关于如何最好地解决纹理随机大小对象的一般问题,尽管您可能不需要提供代码。

我有哪些选择?制作小的纹理方块并将它们平铺?拉伸它们?程序生成它们(对于类似摩天大楼的纹理,这是否可能 - 底部的灰色正方形和有/没有光的黑色/黄色窗口)?我需要考虑什么?

我现在真的不知道该怎么做。欢迎任何想法!

谢谢!

乔纳斯

有摩天大楼的星球

设法通过拉伸来完成它 - 现在只对所有尺寸使用一种纹理,但我会改变它。 box2d 对象上的拉伸纹理

4

1 回答 1

1

正如你所说,你有很多可能解决这个问题。如果你靠近那些,拉伸通常看起来不太好。但如果他们远离,这可能是一个很好的解决方案。在我看来,生成这些确实需要时间,我猜这对游戏来说不是一个好主意。你甚至必须编写很多东西,我猜它们看起来总是相似的。

我认为平铺是不可能的,因为你的天空塔并不总是在瓷砖的基础上。因此,例如,您有 32 像素的瓷砖,而您的塔高 53 像素,它不能很好地工作,因为您需要拉伸/切割或这样的瓷砖之一。

我会采用带有良好过滤器的拉伸解决方案。为此获得超过 1 张图片,因此如果您有更大的塔,也可以拍摄更大的图片以获得更好的解决方案。您需要注意宽度和高度。你不应该把一个很宽的塔固定得太多,也应该把一个薄的塔固定在一个宽的塔上。你也可以将它随机化一点,这样你肯定会得到一些不同的图片。
过滤器示例:

// we set the linear texture filter to improve the stretching
splashTexture.setFilter( TextureFilter.Linear, TextureFilter.Linear );

从本教程
中还可以查看 libgdx 中的此条目:了解您的纹理过滤器!


但这只是我的看法。


要找出默认情况下使用的过滤器,请查看Texture方法。

getMagFilter();
getMinFilter() 

因为您像这样设置过滤器:

setFilter(Texture.TextureFilter minFilter, Texture.TextureFilter magFilter) 
于 2013-05-14T11:02:05.380 回答