当前位置:  开发笔记 > 前端 > 正文

游戏开发的三角数学

如何解决《游戏开发的三角数学》经验,为你挑选了1个好方法。

我试图制作一个三角形(等腰三角形)在屏幕上移动,同时当用户按下方向键(如右或左)时稍微旋转它.

我希望三角形的鼻子(顶点)始终引导三角形.(就像那个古老的小行星游戏).

我的问题在于背后的数学问题.在每个X时间间隔,我希望三角形在"某个方向"移动,我需要帮助找到这个方向(x和y增量/减量).

我可以找到三角形的中心点(Centroid),我有最高x和y点,所以我有一个线矢量可以使用,但不知道"如何"使用它.

我认为它与旧的Sin和Cos方法以及三角形旋转的量(角度)有关,但我对这些东西有点生疏.

任何帮助是极大的赞赏.



1> aib..:

vy/vx的反正切(反正切),其中vx和vy是(质心 - >尖端)向量的分量,为您提供向量所面对的角度.

经典的反正切法为您提供了归一化为-90°

幸运的是,您的标准库应该提供atan2()函数,该函数将vx和vy分别作为参数,并返回0°和360°之间的角度,或-180°和+ 180°.它还将处理vx = 0的特殊情况,如果你不小心,这将导致除以零.

请参阅http://www.arctangent.net/atan.html或只搜索"arctangent".

编辑:为了清晰起见,我在帖子中使用了学位,但Java和许多其他语言/库在弧度上工作,其中180°=π.

您也可以将vx和vy添加到三角形的点以使其沿"向前"方向移动,但要确保向量归一化(vx²+vy²= 1),否则速度将取决于三角形的大小.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有