Cocos2d-x:如何绘制调整大小的矩形
Cocos2d-x: How can I draw a resizing rectangle?
我正在用Cocos2d-x 3.4(很棒的框架BTW :))做一个项目。我想知道如何绘制一个简单的半透明选择,与您在 Windows 上看到的选择相同?
http://cdn.maximumpcguides.com/windows-7/wp-content/uploads/2010/11/use-translucent-select-rectangle-2.png
我尝试使用 DrawNode 类,但未能实现这一点:'(我希望有人能告诉我正确的方法,请 :-)
使用 DrawNode 绘制非常容易。
在 onTouchStarted 事件上设置原点,并在 onTouchMoving 事件上设置目标点。
// HelloWorld.h
class HelloWorld : public Layer{
public:
...
bool onTouchBegan(const Touch *touch, Event *event);
void onTouchMoved(const Touch *touch, Event *event);
void onTouchEnded(const Touch *touch, Event *event);
protected:
Vec2 _originPoint;
Vec2 _destinationPoint;
DrawNode *_drawNode;
};
// HelloWorld.cpp
bool HelloWorld::init()
{
if ( !Layer::init() ) return false;
// Add touch listener
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(HelloWorld::onTouchMoved, this);
listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
// Create the draw node
_drawNode = DrawNode::create();
addChild(_drawNode);
return true;
}
bool HelloWorld::onTouchBegan(const cocos2d::Touch *touch, cocos2d::Event *event)
{
_originPoint = touch->getLocation();
_destinationPoint = _originPoint;
return true;
}
void HelloWorld::onTouchMoved(const cocos2d::Touch *touch, cocos2d::Event *event)
{
_destinationPoint = touch->getLocation();
_drawNode->clear();
_drawNode->drawSolidRect(_originPoint, _destinationPoint, Color4F(0,0,1,0.2));
_drawNode->drawRect(_originPoint, _destinationPoint, Color4F::BLUE);
}
void HelloWorld::onTouchEnded(const cocos2d::Touch *touch, cocos2d::Event *event)
{
_drawNode->clear();
}
相关文章:
- 为char数组调整zlib-zpipe
- 调整大小后指向元素值的指针unordered_map有效?
- 在C++中调整向量中的索引
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 哪些库可以通过Opencv调整曝光率
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 如何调整 std::vector of Eigen::MatrixXd 的大小
- SFML 文本未绘制在窗口上
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- 在容量内调整矢量大小时的性能影响
- 除非重新绘制大小,否则SDL_Texture在调整大小后呈现黑色
- 如何获得一个窗口,以便在调整C++大小时保留绘制的对象
- Cocos2d-x:如何绘制调整大小的矩形