Jon*_*Jon 10 c++ cocos2d-x cocos2d-x-2.x
我一直在我的计算机上玩Cocos2D-X,我已经在我希望能够构建它的所有设备上构建hello world程序.
我知道如何让程序显示一个精灵,并显示一个标签,但我还没有能够让程序画一条线.如何在Cocos2D-X中画一条线?
And*_*rew 10
使用void ccDrawLine(const CCPoint& origin, const CCPoint& destination)
声明的函数CCDrawingPrimitives.h
编辑
我自己从未尝试过使用原语.但正如我所知,所有内容cocos2d
都是vis CCNode
或它的子类.所以你必须将你的代码放在draw
某些CCNode
或它的子类的方法中.
你必须ccDrawLine
在draw()中使用函数
例
void GameLayer::draw()
{
//red line from bottom left to top right corner
cocos2d::ccDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
cocos2d::ccDrawLine(ccp(0,0), ccp(100, 100));
}
Run Code Online (Sandbox Code Playgroud)
并且记住图层必须为空,因为它会调用第一个绘图,然后它会绘制子图像,所以如果你有孩子,它将与你绘制的重叠.
Z订单:)
所以在你的代码中你有课
class MyLayer : public CCLayer
{
... //your code
init()
{
CCLayer* pLayer = new GameLayer(); //It will be debug layer :)
addChild(pLayer);//Alse you can set here Z order.
pLayer->release();
}
virtual void draw()
{
//red line from bottom left to top right corner
ccDrawColor4F(1.0f, 0.0f, 0.0f, 1.0f);
ccDrawLine(ccp(0,0), ccp(100, 100));
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将绘制你想要的.
我找到了另一种在CCLayer中绘制线条的简单方法.Cocos2d-x有一个名为CCDrawNode的类.你可以在这里查看参考.并且它很容易使用该功能:
void drawSegment(const CCPoint & from,
const CCPoint & to,
float radius,
const ccColor4F & color
)
Run Code Online (Sandbox Code Playgroud)
小例子:
CCDrawNode* node = CCDrawNode::create();
addChild(node,10);//Make sure your z-order is large enough
node->drawSegment(fromPoint,toPoint,5.0,ccc4f(180,180,180,100));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19861 次 |
最近记录: |