0

我是 marmalade sdk 的新手,我正在关注本教程,我阅读了这一段

*这里我们告诉 Iw2D 设置绘制“任何东西”时使用的“当前”变换。请记住,Iw2D 是基于上下文的,并且会记住此变换,因此如果您尝试在不再次更改变换的情况下绘制其他内容,那么它将以相同的位置、相同的角度和相同的比例绘制。请注意,您可以使用 Iw2DSetTransformMatrix(CIwMat2D::g_Identity) 将当前变换重置为正常。单位矩阵是没有旋转、没有平移和没有缩放的默认变换矩阵。*

我很困惑,这条线是什么意思>> Iw2D 是基于上下文的,这种转换会被记住,有什么可爱的想法吗?您的帮助将不胜感激。

4

2 回答 2

2

从来没有听说过果酱(除了早餐——而且它的变形也很粘),但总的来说:

变换描述了在渲染之前应用于所有坐标的几何变换。因此,如果您绘制水平线,并指定 45° 旋转作为变换,则该线将以 45° 角渲染。

基于上下文意味着转换“坚持”直到您重置(=用“身份转换”替换它)或修改它。

于 2012-11-06T10:08:46.030 回答
1

在 Marmalade 中,您可以在每一帧中设置当前变换矩阵,然后将其重置为 Identity。否则,您可以设置一次变换矩阵并将其应用于所有未来的渲染/绘图。

当您调用Iw2DDrawImage()orIw2DDrawRect()或任何其他Iw2DDraw函数时,绘图将基于当前的变换矩阵。因此,如果您在特定图形上设置了 45 度的旋转,则下一个图形将旋转到 45 度,除非您再次重置它,缩放和其他转换也是如此。因此,如果您想避免这种情况,请Iw2DSetTransformMatrix()在当前帧中使用结束后调用函数并将其设置为单位矩阵。

于 2012-11-07T07:08:18.490 回答