gpt4 book ai didi

c++ - Direct3D Sprite->SetTransform 用法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:01:00 26 4
gpt4 key购买 nike

我使用 D3DXSprite 绘制纹理。
我想转换它们(旋转、缩放等),所以我使用 SetTransfrom 方法。
我应该存储旧转换 -> 设置新转换 -> 绘制 -> 设置旧转换吗?我有一个 sprite 类,负责处理 Draw 和 Update 方法。我的意思是这样的:

D3DXMatrix oldMatrix;
sprite->GetTransfrom(&oldMatrix);

D3DXMatrix newMatrix;
D3DXMatrixScaling(&newMatrix, 2.0f, 2.0f, 0.0f);

sprite->SetTransform(&newMatrix);
sprite->Draw(...);

sprite->SetTransform(&oldMatrix);

好/坏?

最佳答案

不好的是检索 oldMatrix 并将其用于计算 newMatrix(精度问题)。最好在每次新抽取时重新计算一个新矩阵。

您可能想要为每个 Sprite 存储的是位置、旋转和比例因子。

关于c++ - Direct3D Sprite->SetTransform 用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2221291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com