[英]How do I draw a line using Cocos2D-X?
我一直在我的計算機上玩Cocos2D-X,我已經在我希望能夠構建它的所有設備上構建hello world程序。
我知道如何讓程序顯示一個精靈,並顯示一個標簽,但我還沒有能夠讓程序畫一條線。 如何在Cocos2D-X中畫一條線?
使用在CCDrawingPrimitives.h
聲明的void ccDrawLine(const CCPoint& origin, const CCPoint& destination)
函數
編輯
我自己從未嘗試過使用原語。 但正如我所知, cocos2d
所有內容都是通過CCNode
或它的子類呈現的。 所以你必須將你的代碼放在某個CCNode
或它的子類的draw
方法中。
你必須在draw()中使用ccDrawLine
函數
例
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));
}
並且記住圖層必須為空,因為它會調用第一個繪圖,然后它會繪制子圖像,所以如果你有孩子,它將與你繪制的重疊。
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));
}
}
上面的代碼將繪制你想要的。
我找到了另一種在CCLayer中繪制線條的簡單方法。 Cocos2d-x有一個名為CCDrawNode的類。 你可以在這里查看參考。 並且它很容易使用該功能:
void drawSegment(const CCPoint & from,
const CCPoint & to,
float radius,
const ccColor4F & color
)
小例子:
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));
auto node = DrawNode::create();
node->drawLine(Vec2(200, 200), Vec2(200, 500), Color4F(1.0, 1.0, 1.0, 1.0));
this->addChild(node);
在cocos2d-x 3.0
alpha中你可以使用
DrawPrimitives::drawLine(const cocos2d::Point &origin, const cocos2d::Point &destination);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.