我正在使用C ++中的Direct2D制作一个小游戏,我正处于需要相机的地步,因为某些级别比屏幕宽度和高度更大,因此玩家可以看到所有级别。
所以我的问题是如何在Direct2D中实现相机系统?
答案 0 :(得分:0)
ID2D1RenderTarget::SetTransform
可用于实现2D相机。所有绘图操作将首先应用变换,这是一个3x2矩阵,因此完全能够表示具有平移,旋转,缩放和倾斜的摄像机(尽管您可能不应该让您的相机倾斜场景)。至于如何生成矩阵,请查看D2D1::Matrix3x2F
类中的辅助函数,并在应用变换时查看this article。
对于实际的观察相机,如果你想在尺寸 s 的目标中心看到坐标 c ,你可以设置转换为( s / 2) - c 。