【发布时间】:2011-10-28 14:37:41
【问题描述】:
我正在尝试制作一个小型弓箭手游戏,而我遇到的问题尤其与 2 个像素有关,我将它们称为 _arm 和 _arrow。真正的弓箭手在拉箭时,不会立即将箭拉到力所能及的范围内,箭需要一点时间才能拉回来。 _arm 的角度等于从一个点到用户在屏幕上触摸的位置的向量。旋转是完美的,所以 _arm 很好。 _arrow 需要与 _arrow 位于同一行,它们各有 1 个像素宽,因此看起来 _arrow 正好位于 _arm 的顶部。
我尝试根据随时间变化的变量从 x/y 坐标递减,并将 _arrow 的位置设置为等于 _arm 的位置,并尝试使其看起来像 _arrow 被拉回。但是,如果您旋转,x/y 会弄乱,因为它在 x 和 y 轴上不成比例,所以基本上 _arrow 会稍微高于手臂或略低于手臂,具体取决于矢量的角度,基于触摸.
我如何使用 _arm 的 x/y 位置和触摸矢量来使箭头看起来好像被拉回了一小部分,但仍将箭头保持在 _arm 精灵的顶部,以便它的位置将类似于手臂,但略微偏离但始终位于 _arm 像素的顶部。如果您需要更多信息,请发表评论。
【问题讨论】:
-
我是否正确理解您试图推断由两点定义的线?
-
没有。 Sprites 的位置基于图像的中心。因此,如果两者都是 20px 长/1px 宽,并且我设置 arrow.position = arm.position,那么它们正好在彼此之上。我想要一种根据手臂精灵的角度找到 x/y 点的方法,例如在 45 度角处,它可能是 0.75 像素 down.x 和 0.75 像素 down.y,我会设置箭头的定位到该点并减少该点以使其看起来像正在绘制。
标签: objective-c xcode math cocos2d-iphone geometry