Ste*_*eve 6 c# math xna windows-phone-7
我正在开发一款基于触控的游戏,而且我在绘制用户触及的路径方面遇到了问题.我正在尝试模仿这些应用程序http://www.youtube.com/watch?v=G3CECr6mT1Q或http://www.youtube.com/watch?v=r34-_0wrVC4
我在XNA/C#中这样做.
我的问题是:我有一组定义用户触摸路径的路标.我不确定如何在所有这些点之间得到一条风格化的线,所以我想"嘿,我将只有一个非常小的图像'线',并在航点之间的每个点绘制它,并相应地旋转它如果这是最好的解决方案,我不确定.
但我被卡住了,因为我不知道如何获得这两点之间的所有坐标.我有两点,我可以得到从第一个到第二个的矢量等,但我似乎无法得到正确的数学.
有什么建议或帮助吗?谢谢!
要计算两点之间的中间点,找到从一个点到另一个点的方向向量以及点之间的距离.将距离缩放0到1之间的因子t,其中t = 0对应于第一点t = 0.5是它们之间的中间,t = 1对应于第二点.然后通过此值缩放方向向量并将其添加到原始点.
Vector2 IntermediatePoint(Vector2 p0, Vector2 p1, float t)
{
Vector2 delta = p1 - p0;
float distance = delta.Length();
if (distance == 0.0f)
{
return p0;
}
else
{
Vector2 direction = delta / distance;
return p0 + direction * (distance * t);
}
}
Run Code Online (Sandbox Code Playgroud)
如果计算p0和p1之间的多个点,则只应计算一次距离和方向.
您还可以考虑使用XNA RoundLine来连接您的积分.
另一个建议是设置纹理旋转四边形.
| 归档时间: |
|
| 查看次数: |
9713 次 |
| 最近记录: |