簡體   English   中英

如何使用Cocos2D-X繪制線條?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM