在过去一年左右的时间里,我一直在熟悉 Javascript,为了真正彻底地学习这门语言,我决定制作一个 HTML5 游戏!我遇到的问题是我完全不知道如何在屏幕上平滑地以一定角度移动图像。我可以通过将它在 x 轴上/下移动一个像素并在 y 轴上/下移动一个像素来将它移动到 45 度角,但这还不够具体。我将如何以非常特定的角度移动它?在我看来,必须有一个函数将它四舍五入到最近的像素?
不完全确定...任何解决方案都可以正常工作,尽管首选非图书馆特定的解释!
谢谢!
在过去一年左右的时间里,我一直在熟悉 Javascript,为了真正彻底地学习这门语言,我决定制作一个 HTML5 游戏!我遇到的问题是我完全不知道如何在屏幕上平滑地以一定角度移动图像。我可以通过将它在 x 轴上/下移动一个像素并在 y 轴上/下移动一个像素来将它移动到 45 度角,但这还不够具体。我将如何以非常特定的角度移动它?在我看来,必须有一个函数将它四舍五入到最近的像素?
不完全确定...任何解决方案都可以正常工作,尽管首选非图书馆特定的解释!
谢谢!
首先,如果您使用 HTML5 制作游戏,您应该尝试使用Canvas 元素。在 Canvas 中绘制所有游戏,而不是操纵 DOM 元素。话虽如此,移动图像(在画布内或图像标签内)的原理是用 sin/cos + 距画布/窗口左上角的距离来计算位置。
例子:
160° (South by South-East, give or take), distance 130 pixels.
sin(160)*130
= 44.462619
cos(160)*130
= -122.160041
--> 左上角位于 x=44,y=122(因为 0:0 左下坐标系中的 44:-122 转换为 0:0 左上坐标系中的 44:122)。
你将需要三角函数:) 例如,如果你想将对象移动到鼠标光标,那么你有对象坐标和鼠标坐标,你应该计算 X 和 Y 步长(对不起我的英语)