【发布时间】:2016-05-26 05:34:20
【问题描述】:
我正在创建一个天际线游戏作为一个有趣的辅助项目,我在为建筑物的墙壁设置纹理时遇到了麻烦,我目前只是在该区域绘制一个多边形,但我想知道是否有一种方法可以对它进行纹理处理,这样的纹理:
可以这样渲染:
这是游戏的图片,我想要纹理的部分是建筑物的灰色墙壁。
我知道我可以通过创建一个单独的渲染系统来逐个像素地绘制它,但我试图避免这种情况。
我的具体问题是 Java 的 Graphics 中是否存在方法或类似的方法可以完成此操作。
【问题讨论】:
-
也许AffineTransform 是你需要的?
-
@msandiford 看起来很有希望,但我认为它没有纹理功能
-
您用插图描述的内容可以使用 AffineTransform(它支持纹理),但屏幕截图显示的是透视投影,仿射变换不支持。
-
@msell 我没有使用任何投影,严格来说是 2.5D,建筑物的每个面都是一个正在渲染的单独多边形,请您指导我到一个链接,解释如何使用 AffineTransform 进行纹理处理,我以前从未使用过它。谢谢!
-
我认为有很多方法可以使用它,但也许最直接的方法是使用Graphics2D#drawImage(...)。如果不看一些代码,很难知道最好的方法是什么。