绘制cocos2d v3不再具有ccDraw *函数,如何在不创建节点的情况下绘制?

时间:2015-02-15 04:32:19

标签: objective-c cocos2d-iphone

我按照http://www.cocos2d-swift.org/get-started

上的说明操作

并通过Sprite Builder创建了一个新项目。

搜索ccDraw并没有显示任何内容。我在一个论坛上发现了这个例子并实现了,但它看起来并不正确。我不想要一个对资源征税的drawNode。我想要低级GL绘图线,ccDrawLine曾经如何工作。当我像这样做一个drawNode时 - 它不会重置旧绘图 - 所以我画的所有线都留在屏幕上。

如何在v2.x中绘制? (ccDrawLine,ccDrawCircle,ccDrawPoly)

#import "MainScene.h"

@implementation MainScene

- (id)init {
    self = [super init];
    _line01 = [CCDrawNode node];
    [self addChild:_line01];
    [self schedule:@selector(pulse) interval:0.016];
    return self;
}

- (void)draw:(CCRenderer *)renderer transform:(const GLKMatrix4 *)transform {
    [_line01 drawSegmentFrom:ccp(50, 50) to:ccp(x, y) radius:2 color:[CCColor colorWithRed:128 green:25/255 blue:3]];
}

- (void)pulse {
    x+= 1;
    y+= 3;
    if (x > 500) {
        x = 0;
    } else if (y > 500) {
        y = 0;
    }
}

@end

http://www.cocos2d-swift.org/docs/api/Classes/CCDrawNode.html建议使用CCDrawNode效率不高。

1 个答案:

答案 0 :(得分:0)

简单地按如下方式稍微修改脉冲,并取消draw覆盖。

- (void)pulse {
    x+= 1;
    y+= 3;
    if (x > 500) {
        x = 0;
    } else if (y > 500) {
        y = 0;
    }
    // update the line segment
    [_line01 clear];
    [_line01 drawSegmentFrom:ccp(50, 50) to:ccp(x, y) radius:2 color:[CCColor colorWithRed:128 green:25/255 blue:3]];

}