cocos2dx3.4 DrawPrimitives问题
2016-02-16 08:35
405 查看
最近写程序的时候偶然间用到了DrawPrimitives::drawRect().是画一个矩形。是要重写
draw函数,一开始很好用,指哪打哪
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/14/5b36e3a8d882765e188cfa8a2241200d)
见代码
但接下来就不行了
同样的代码,画出来的矩形却驴唇不对马嘴(代码同上)
----------------------------------------------------------
好吧,我承认上面是废话。
简单地说,DrawPrimitives绘制也是根据相对坐标系的。切记
draw函数,一开始很好用,指哪打哪
见代码
void TowerPos::onDraw(const kmMat4 &transform,bool transformUpdated) { kmGLPushMatrix(); kmGLLoadMatrix(&transform); //设置画笔粗细 glLineWidth(5.f); //绘制矩形 Point srcPos = Point(m_pos.x - TOWER_RADIUS,m_pos.y + TOWER_RADIUS); Point destPos = Point(m_pos.x + TOWER_RADIUS,m_pos.y - TOWER_RADIUS); DrawPrimitives::drawRect(srcPos,destPos); glLineWidth(1); //结束绘制 kmGLPopMatrix(); } void TowerPos::draw(Renderer*renderer,const kmMat4 &transform,uint32_t flags) { if(m_bIsDebug) { _customCommand.init(_globalZOrder); _customCommand.func = CC_CALLBACK_0(TowerPos::onDraw,this,transform,flags); renderer->addCommand(&_customCommand); } }这里的TowerPos继承自Ref,在addChild的时候,坐标为(0,0)。一切都很正常。
但接下来就不行了
同样的代码,画出来的矩形却驴唇不对马嘴(代码同上)
----------------------------------------------------------
好吧,我承认上面是废话。
简单地说,DrawPrimitives绘制也是根据相对坐标系的。切记
相关文章推荐
- cocos2d unity3d 获取访问文件列表(二)
- cocos2d unity3d 获取访问文件列表(一)
- cocos creator的下载与安装
- quick-cocos2dx中 lua 和oc的通信
- 触控推出新的编辑器Cocos Creator等四个引擎商业化新进展
- 触控推出新的编辑器Cocos Creator等四个引擎商业化新进展
- 关于Cocos2dx之JS创建项目
- cocos2d-x中的Slider控件
- cocos2dx Audio声音引擎
- cocos2d-x 部分UI 介绍
- cocos2d-x 标签Lable
- cocos2dx事件分发机制与lambda表达式浅谈
- 把cocos2dx 2.2的项目移植到 cocos2dx 3.8
- Cocos2dx中线程优先级
- cocos3D第十三节:骨骼点绑定
- cocos2d int, float, double, const char* 转string
- 关于mac环境下删除cocos2d-x环境变量配置的方法
- Cocos2dx3.1 获取当前系统时间
- cocos2dx[3.2]——裁剪节点ClippingNode
- cocos2d-x利用ClipingNode做游戏遮罩制作新手引导