2011-04-28 83 views
0

我正在寫使用cocos2d的0.99.5, 我有這個自定義類的iPhone應用程序:ccDrawLine繪圖線座標

@interface Head : CCSprite <CCTargetedTouchDelegate> 

我在這個類的繪製方法,這樣劃清界限:

-(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); 

現在的問題是線路被畫的t除p1,p2以外的其他點。我猜這些點需要轉換成某種東西,但不知道如何。

如果我手動指定了相同的點,則該線會在適當的座標處繪製。

這裏缺少什麼?

回答

0

您在draw函數中繪製的所有內容都與節點的位置相關(在這種情況下是Head的位置)。因此,在設置p1之後但在設置p2之前更改位置時,結果是意外的。如果嘗試使用手動點,則僅當位置爲(0,0)時纔會正確繪製線條。

+0

謝謝,我知道了 – Adam 2011-04-30 07:14:27

0

嘗試將它們轉換爲世界空間:

CGPoint p1World = [self convertToWorldSpace:p1]; 

CGPoint p2World = [self convertToWorldSpace:p2];