我正在使用cocos2d 0.99.5编写iphone应用程序, 我有这个自定义类:
@interface Head : CCSprite <CCTargetedTouchDelegate>
我在这个类'draw方法中画了一行,如下所示:
-(void) draw {
[super draw];
glEnable(GL_LINE_SMOOTH);
glColor4f(0.8, 1.0, 0.76, 1.0);
ccDrawLine(p1, p2);
}
p1,p2计算如下:
CGPoint p1 = CGPointMake(self.position.x, self.position.y);
.......
//change the position
.......
CGPoint p2 = ccp(self.position.x, self.position.y);
现在的问题是在p1,p2以外的不同点绘制线条。我想这些点需要转换为某些东西,但不知道是什么&amp;怎么样。
如果我手动指定相同的点,则会在适当的坐标处绘制线条。
这里缺少什么?
答案 0 :(得分:0)
您在绘制函数中绘制的所有内容都与节点的位置相关(在本例中为Head的位置)。因此,在设置p1之后但在设置p2之前更改位置时,结果是意外的。如果您尝试使用手动点,则仅当位置为(0,0)时才会正确绘制线条。
答案 1 :(得分:0)
尝试将它们转换为世界空间:
CGPoint p1World = [self convertToWorldSpace:p1];
CGPoint p2World = [self convertToWorldSpace:p2];