我们画一条直线用到的是CCDrawLine,代码如下:
void MyLineLayerBase::initLayer() {
CCSize size = CCDirector::sharedDirector()->getWinSize();
CCSprite *sprite = CCSprite::create("BG.jpg");
sprite->setPosition(ccp(size.width / 2.0f, size.height / 2.0f));
this->addChild(sprite,-1);
}
void MyLineLayerBase::draw() {
glLineWidth( 5.0f );
ccDrawColor4F(255,0,0,255);
ccDrawLine(ccp(0, 0), ccp(480, 320));
}
注意几点:
这个是如果我再addChild的时候,设置zOrder的为1时,会遮住直线,那么我们改怎么办呢?
有两种办法:
1,讲zOrder设置为-1,让它在最底层。
2.,将它设置为透明即可,不过达不到方法1的效果。没有那么好
还有个重点,差点忘了说了,就是在画线的时候,我们需要重写CCNode中的draw方法,这个时候,它是virtual函数,自动会去调用该方法,让它显示在你的屏幕上!!
还有以下其他的,比如画圆等,这些方法都在头文件
#include "CCDrawingPrimitives.h"
中。