绘制一条跟随两个独立对象的线
Drawing a line that follows two independent objects
我想在屏幕上画一条线,跟随两个移动的物体。这意味着每一端都连接到其中一个对象,即使这些对象彼此独立移动。这是我画线的代码:
CCDrawNode *draw = [[CCDrawNode alloc] init];
CCColor *color = [[CCColor alloc]initWithCcColor3b:ccc3(140, 100, 10)];
CGPoint worldCoordCart = [_cart convertToWorldSpace: _cart.position];
CGPoint worldCoordClaw = [_claw convertToWorldSpace: _claw.position];
[draw drawSegmentFrom:worldCoordCart to:worldCoordClaw radius:5 color: color];
[self addChild:draw];
我将如何着手尝试在某种意义上更新绘图方法,以便线条始终连接到两个对象?为什么我的线段不在我的对象之间,即使在我看来它们的位置应该相同?在理解世界 space 定位时,我觉得我缺少一些基本的东西。
_cart.position
是它在其父级中的位置,而不是在 _cart 中。尝试
CGPoint worldCoordCart = [_cart.parent convertToWorldSpace:_cart.position];
_claw 也一样。
此外,我认为嵌入在 CCDrawNode 中的绘图原语无法更新。我认为您必须继承 CCDrawNode 并为自己提供更新开始和结束位置的方法。当任一更新时,您首先使用 clear
方法,然后简单地添加一个具有更新坐标的新线段。
我想在屏幕上画一条线,跟随两个移动的物体。这意味着每一端都连接到其中一个对象,即使这些对象彼此独立移动。这是我画线的代码:
CCDrawNode *draw = [[CCDrawNode alloc] init];
CCColor *color = [[CCColor alloc]initWithCcColor3b:ccc3(140, 100, 10)];
CGPoint worldCoordCart = [_cart convertToWorldSpace: _cart.position];
CGPoint worldCoordClaw = [_claw convertToWorldSpace: _claw.position];
[draw drawSegmentFrom:worldCoordCart to:worldCoordClaw radius:5 color: color];
[self addChild:draw];
我将如何着手尝试在某种意义上更新绘图方法,以便线条始终连接到两个对象?为什么我的线段不在我的对象之间,即使在我看来它们的位置应该相同?在理解世界 space 定位时,我觉得我缺少一些基本的东西。
_cart.position
是它在其父级中的位置,而不是在 _cart 中。尝试
CGPoint worldCoordCart = [_cart.parent convertToWorldSpace:_cart.position];
_claw 也一样。
此外,我认为嵌入在 CCDrawNode 中的绘图原语无法更新。我认为您必须继承 CCDrawNode 并为自己提供更新开始和结束位置的方法。当任一更新时,您首先使用 clear
方法,然后简单地添加一个具有更新坐标的新线段。