才开始了解cocos2dx几天,只是觉得学习还是得边用边学,所以才想实现点什么,下面提到的有什么问题请指出,谢谢
我想实现简单的画板功能,就看了官方cpp_test的Node:Draw测试代码,遗憾的是我先看到的是DrawPrimitives,所以就研究了一下,简单的实现了我的功能,当我写的差不多的时候才发现DrawPrimitives应该尽量不再使用,而使用DrawNode来实现。
代码都写的差不多了,而且测试效果感觉还特别好,还是在这里留存一下吧:
#pragma once
#include "cocos2d.h"
struct Segment {
cocos2d::Point p1;
cocos2d::Point p2;
};
class BoardLayer : public cocos2d::LayerColor
{
public:
BoardLayer();
virtual ~BoardLayer();
CREATE_FUNC(BoardLayer);
virtual bool init();
virtual bool onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *unused_event);
virtual void onTouchMoved(cocos2d::Touch *touch, cocos2d::Event *unused_event);
virtual void onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *unused_event);
virtual void onTouchCancelled(cocos2d::Touch *touch, cocos2d::Event *unused_event);
virtual void draw(cocos2d::Renderer *renderer, const cocos2d::Mat4 &transform, uint32_t flags);
private:
Segment _bufferSegment;
cocos2d::Point _originPoint;
cocos2d::Point _previousPoint;
std::vector<Segment> _drawSegment;
std::vector<cocos2d::Point> _drawPoint;
cocos2d::DrawNode* _drawNode;
cocos2d::Color4F _drawColor;
float _drawSize;
};
#include "BoardLayer.h"
USING_NS_CC;
BoardLaye