void Sprite::draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
{
//检查是否超出边界,自动裁剪
_insideBounds = transformUpdated ? renderer->checkVisibility(transform, _contentSize) : _insideBounds;
if(_insideBounds)
{
//初始化
_quadCommand.init(_globalZOrder, _texture->getName(), _shaderProgram, _blendFunc, &_quad, 1, transform);
renderer->addCommand(&_quadCommand);
//物理引擎相关绘制边界
#if CC_SPRITE_DEBUG_DRAW
_customDebugDrawCommand.init(_globalZOrder);
//自定义函数
_customDebugDrawCommand.func = CC_CALLBACK_0(Sprite::drawDebugData, this);
renderer->addCommand(&_customDebugDrawCommand);
#endif
}
}cocos2dx sprite的draw函数
最新推荐文章于 2022-07-11 13:10:30 发布
本文详细介绍了Sprite类的绘制过程,包括边界检查、初始化绘制指令、添加渲染命令等关键步骤,并展示了如何在特定条件下进行物理引擎边界的绘制。
787

被折叠的 条评论
为什么被折叠?



