1

截图:http: //imgur.com/kNASp

编辑 - 为了更好地演示此问题,似乎立即图层中的大图像被裁剪为立即图层的大小。

在示例图像中,有两个 ImmediateLayers。左侧尺寸显示的图像大于 ImmediateLayer 的尺寸,并且在旋转平移时显示为剪裁。在右侧,图像的低分辨率版本被放大并显示在相同的位置。未剪辑。

在背景中显示了图像的原始招聘版本,显示其已全部加载,并且仅在 ImmediateLayer 中显示时被剪裁。

所以,不是旋转问题,而是图像可以在 ImmediateLayer 中显示和翻译而不被剪裁的问题吗?

原来的 -

在 PlayN 中,我试图在渲染到剪辑的 ImmediateLayer 时旋转图像。我可以通过在渲染时设置表面的旋转来旋转图像,但这会导致图像被剪切然后旋转。因此,星形图像会在旋转到位之前对其点进行剪裁。

这个旋转代码是否正确并且剪辑错误?

surface.save();

surface.rotate(rotation);

surface.drawImage(star, 0, 0);
surface.restore();

一点背景,使用 ImmediateLayer 的原因是有 2 播放器分屏视图,并排。

4

2 回答 2

1

编辑:

你显然做错了什么。我添加了一个通过旋转和平移 trasform 将图像绘制到剪辑的 ImmediateLayer 的示例,它工作得很好。看看这个例子,希望它能说明你做错了什么。

旋转和转换图像绘图到剪切层的示例

原来的:

您可以发布一个屏幕截图来演示该错误吗?

除了定义剪辑区域的 ImmediateLayer 的边界之外,不会发生任何剪辑(您绝对应该旋转 ImmediateLayer 本身)。

因此,是否旋转 Surface 变换然后绘制图像并不重要。如果旋转图像的某些部分超出 ImmediateLayer 的范围,则这些部分将被剪裁。但是直接图层范围内的所有内容都将正常绘制。

于 2012-05-23T04:33:17.100 回答
0

@samskivert - 运行您的示例代码并将其与您的屏幕截图进行比较我注意到我有完全不同的结果 - 我根本没有剪辑。

将我的项目的 playn 依赖项从 1.2 移至 1.3.1 并因此移至 Lwjgl 解决了该问题:

http://imgur.com/hqile

完全相同的代码,错误的依赖关系。感谢您帮助了解问题的根源,并感谢您在 playn 中投入了如此多的好工作!

于 2012-05-26T07:11:47.740 回答