2011-10-28 49 views
1

我正在尝试制作一个小型射手游戏,并且我遇到的问题必须与2个像素特别关联,我会将它们称为_arm和_arrow。当一个真正的弓箭手拉回箭头时,他不会立即将箭头拉回,只要他的力量允许,箭头需要一点时间才能拉回来。 _arm的角度等于从某点到用户在屏幕上触摸的矢量。旋转是完美的,所以_arm是好的。 _arrow需要和_arrow在同一行上,它们各占一个像素,因此它看起来好像_arrow恰好位于_arm的顶部。正确旋转,改变x/y坐标

我试着从基于随时间变化的变量的x/y坐标递减,并将_arrow的位置设置为等于_arm的位置,并试图使其看起来像_arrow被拉回。然而,如果你旋转了,x/y会因为x轴和y轴不成比例而混乱,所以基本上_arrow要么略高于臂,要么略低于它,这取决于向量的角度,基于触摸。

我怎么可以使用_arm的x/y位置和触摸的向量来使箭头看起来好像被拉回了一小部分,但是仍然保持箭头位于_arm sprite的顶部,这样它就是位置会类似于手臂,但是在任何时候都会略微偏离_arm像素顶部。如果您需要更多信息,请发表评论。

+0

我是否正确理解您正试图推断由两点定义的线? – Dabbler

+0

编号Sprites的位置基于图像的中心。因此,如果两者都是20px长/ 1px宽,并且我设置了arrow.position = arm.position,那么它们完全在彼此之上。我想要一种基于手臂精灵的角度来找到x/y点的方法,比如像45度角,它可能是0.75像素down.x和0.75像素down.y,我会设置箭头的在这一点上的位置和减少,使其看起来像它正在绘制。 – Gabe

回答

0

我不知道我完全理解,但我会在回答反正一展身手:

要使箭头移动和旋转到相同的地方考虑将箭头作为一个孩子的手臂。如果你喜欢,通过使其z小于1,你仍然可以渲染它:[arm addChild:arrow z:-1]

然后当箭头被绘制时使箭头从手臂移开,然后您只需设置箭头的位置到手臂。

然而,我用这个解决方案看到的问题是,箭头离开弓后,这个精灵的分组可能有点不寻常。在这里,你可能不希望箭头成为手臂的孩子,因为坐标系不再相关。

即使他们相信我“建议会得到解决[的]问题”这里有什么

海报的解决方案

我得x和y COORDS基于角度的手臂,然后我得到了一个数字的正弦/余弦,这个数字是基于与手臂相同的角度并从中减去的。

+0

你没有得到我说的话:)经过一些试验和错误后,我想出了自己的想法。我不得不根据角度得到手臂的x和y坐标,然后我得到了一个数字的正弦/余弦,这个数字是基于与手臂相同的角度并从中减去的。 – Gabe

+0

是的,我不确定我是否正确地阅读了这个问题。我会删除我的答案,但是您应该发布答案并将其标记为未来用户的正确答案。 –

+0

发表您在这里留下的评论作为回答。 =] –