cocos2dx 重载node绘制基本图形
来源:互联网 发布:linux 禁止执行rm rf 编辑:程序博客网 时间:2024/04/30 00:29
由于需要绘制一个圆形的攻击范围,又不想通过加多一个layer的方式来实现,于是重载了draw函数,在node中draw函数有两个,一个是
virtual void draw () final
另外一个是
virtual void draw (Renderer *renderer, const kmMat4 &transform, bool transformUpdated)
第一个不可以重载,因此需要自己绘制需要重载第二个函数
在第二个函数中默认使用的内容为
.h文件
#ifndef DISPLAY_CIRKLE#define DISPLAY_CIRKLE#include "cocos2d.h"class DisplayCircle : public cocos2d::Node {public: DisplayCircle(); ~DisplayCircle(); void init(cocos2d::Point tpos,float r); static DisplayCircle* create(cocos2d::Point tpos,float r); virtual void draw(cocos2d::Renderer* renderer, const cocos2d::Mat4 &transform, uint32_t flags); bool isClick(cocos2d::Point p); cocos2d::Sprite* sprite;protected: CC_SYNTHESIZE(cocos2d::Point, pos, Pos); CC_SYNTHESIZE(float, radius, Radius);};#endif
.cpp文件
#include "DispalyCircle.h"DisplayCircle::DisplayCircle(){}DisplayCircle::~DisplayCircle(){}void DisplayCircle::init(cocos2d::Point tpos, float r){ setPos(tpos); setRadius(r); sprite = cocos2d::Sprite::create("blue_block.png"); sprite->setPosition(tpos);}DisplayCircle * DisplayCircle::create(cocos2d::Point tpos, float r){ DisplayCircle *temp = new DisplayCircle(); if (temp) { temp->init(tpos,r); temp->autorelease(); } else { CC_SAFE_DELETE(temp); } return temp;}void DisplayCircle::draw(cocos2d::Renderer * renderer, const cocos2d::Mat4 & transform, uint32_t flags){ glLineWidth(5); float radius = 50; cocos2d::ccDrawCircle(cocos2d::Vec2(getPos().x, getPos().y), radius,360,20, false);}bool DisplayCircle::isClick(cocos2d::Point p){ auto t_pos = getPos(); if (t_pos.getDistance(p) <= getRadius()) { return true; } return false;}
0 0
- cocos2dx 重载node绘制基本图形
- cocos2dx 3.0 绘制图形
- 基本图形绘制
- 绘制基本图形
- Ogre 绘制基本图形
- 基本图形绘制
- QT 基本图形绘制
- 基本图形的绘制
- ios基本图形绘制
- 绘制基本图形
- canvas绘制基本图形
- ios基本图形绘制
- 基本的图形绘制
- ios基本图形绘制
- Quartz2D 绘制基本图形
- ios基本图形绘制
- 绘制基本图形
- Quartz2D基本图形绘制
- android设置activity全屏 | 无标题
- VMare虚拟机突破锐捷多网卡限制,成功联网
- Oracle 11g 修改中文字符集
- qt线程,线程池用到的一点问题
- Android中日期时间格式转换
- cocos2dx 重载node绘制基本图形
- javascript 立即执行函数的写法
- PO & POJO & BO & DTO & VO的区别
- spring mvc 文件、图片上传(极简)ajaxFileUpload
- Unity-Animator-学习点滴
- ADT启动失败情况列举
- Win10更新,自定义nginx 80端口被系统占用
- Android之Activity切换和数据传递
- uva208 -Firetruck (双向搜索进行剪枝)