图片不能点击放大,贴代码吧
`#include “EdgeMaskLayer.h”
USING_NS_CC;
EdgeMaskLayer * EdgeMaskLayer::create()
{
EdgeMaskLayer *ret = new (std::nothrow) EdgeMaskLayer();
if (ret && ret->init())
{
ret->autorelease();
return ret;
}
else
{
CC_SAFE_DELETE(ret);
return nullptr;
}
}
void EdgeMaskLayer::onBeginDraw()
{
GLView* openGLView = this->_director->getOpenGLView();
Size frameSize = openGLView->getFrameSize();
glViewport(0, 0, (GLsizei)(frameSize.width), (GLsizei)(frameSize.height));
}
void EdgeMaskLayer::onEndDraw()
{
const auto& vp = Camera::getDefaultViewport();
glViewport(vp._left, vp._bottom, vp._width, vp._height);
}
void EdgeMaskLayer::visit(Renderer *renderer, const Mat4& parentTransform, uint32_t parentFlags)
{
if (!_visible)
{
return;
}
_beginCommand.init(_globalZOrder);
_beginCommand.func = CC_CALLBACK_0(EdgeMaskLayer::onBeginDraw, this);
renderer->addCommand(&_beginCommand);
Node::visit(renderer, parentTransform, parentFlags);
_endCommand.init(_globalZOrder);
_endCommand.func = CC_CALLBACK_0(EdgeMaskLayer::onEndDraw, this);
renderer->addCommand(&_endCommand);
}`
这个功能是什么?看不懂啊,是屏幕截屏吗?
这个是重写了node,让在这个节点上的内容不受设计分辨率的控制
这种功能问问引擎组的大佬吧
理论上来说,节点你不要放在Canvas下(比如和Canvas节点同级)应该就不会根据适配策略缩放了)
实际上也会缩放,整个场景都是默认缩放的。解决方案就是更改了适配方案,使用不同的缩放策略。这里主要的问题是我有个缩放策略是根据屏幕分辨率设计的,而Creator的设计隐藏了屏幕分辨率。
