2012-08-02 56 views
2

我想绘制一些自定义的opengl元素,如ccdrawline()。根据cocos2d文档,我应该重写draw()方法在我的子类层中绘制我的东西。但它不起作用。虽然如果我重写visit()方法,我可以看到我想画的东西。我对此感到困惑,我正在寻求解决这个问题的想法。CCNode重写draw()方法不起作用

我做了这样的:

- (void)draw 
{ 
    [super draw]; 
    CGPoint a = ccp(0,0); 
    CGPoint b = ccp(480,320); 
    ccDrawLine(a,b); 
} 

回答

3

你的代码是正确的,它应该工作。但我隐约记得,绘图并不需要CCLayer类。无论哪种方式,绘制或访问实际上是相同的方法,所以只需使用任何工作。

+0

对不起,这么晚才确认。你是对的,我在一个图层和一个节点上做了一个ccdrawline()测试。节点的draw()方法起作用,而层不起作用。感谢您的帮助〜 – analysiser 2012-08-08 05:55:17

0

难道是因为你缺少说明如何画线的方法吗?值得一试。

// Set color 
glColor4f(0.5, 0.5, 0.5, 1.0); 

// Set line width 
glLineWidth(6.0f);