1. 程式人生 > 實用技巧 >cocos2d-x 3.x 繪製矩形框

cocos2d-x 3.x 繪製矩形框

1、原理

使用opengl命令繪製線條即可,不過這裡使用cocos2d封裝過的方法

2、用法

(1)標頭檔案需要新增

virtual void draw(cocos2d::Renderer* renderer, const cocos2d::Mat4& transform, uint32_t flags) override;

備註:cocos2d引擎內部方法,用於設定渲染方法

void onDraw(const cocos2d::Mat4& transform, uint32_t flags);

備註:自定義的渲染方法,在這裡可以使用opengl進行繪製

CustomCommand _customCommand;

備註:cocos2d引擎使用者自定義命令物件,用於設定渲染方法

(2)方法實現

void BaseRole::draw(Renderer *renderer, const Mat4& transform, uint32_t flags)
{
    _customCommand.init(_globalZOrder);
    _customCommand.func = CC_CALLBACK_0(BaseRole::onDraw, this, transform, flags);
    renderer->addCommand(&_customCommand);
}

void BaseRole::onDraw(const cocos2d::Mat4& transform, uint32_t flags) { Director* director = Director::getInstance(); director->pushMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW); director->loadMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW, transform); //draw CHECK_GL_ERROR_DEBUG(); glLineWidth(
2); DrawPrimitives::setDrawColor4B(0, 255, 255, 255); DrawPrimitives::drawRect(Vec2(-50, -50), Vec2(50, 50)); CHECK_GL_ERROR_DEBUG(); //end draw director->popMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_MODELVIEW); }