我正在写一个游戏,我希望屏幕区域上有一个平铺的油漆。使用TexturePaint java支持使用平铺纹理对Shape进行纹理化,这非常简单并且执行得非常好。但是,我希望我的平铺纹理在将其绘制为形状填充之前进行旋转 - 这在理论上可以通过继承TexturePaint并应用变换来实现,但是,这非常糟糕。
java在某种程度上是否支持这样做?如果没有,那么继承texturePaint的子类可能会表现得非常糟糕吗?
答案 0 :(得分:1)
最好只需旋转BufferedImage,然后再将其投放到TexturePaint。
AffineTransform texture = new AffineTransform();
texture.rotate(radians, bufferedImage.getWidth()/2, bufferedImage.getHeight()/2);
AffineTransformOp op = new AffineTransformOp(texture, AffineTransformOp.TYPE_BILINEAR);
bufferedImage = op.filter(bufferedImage, null);
你应该能够在不接收性能下降的情况下继承TexturePaint,我只能假设你的旋转代码导致丢弃。
我希望这会有所帮助。