首先,先谢谢进来的朋友。不管你能不能帮上我。
先附上我的代码:
请把代码粘贴在这里
bool CoverScene::init()
{
if (!BaseScene::init())
{
return false;
}
auto bgSpr = Sprite::create("Background.png");
bgSpr->setPosition(Point(m_size.width / 2, m_size.height / 2));
this->addChild(bgSpr, 0);
ClippingNode* clippingNode = ClippingNode::create();
//设置裁剪区域大小
clippingNode->setContentSize(Size(200, 200));
clippingNode->setAnchorPoint(Vec2(0.5f, 0.5f));
clippingNode->setPosition(Vec2(m_size.width / 2, m_size.height / 2));
this->addChild(clippingNode, 1);
Sprite* sprite = CCSprite::create("HelloWorld.png");
sprite->setPosition(Vec2(clippingNode->getContentSize().width / 2, clippingNode->getContentSize().height / 2));
clippingNode->addChild(sprite, 1);
DrawNode *stencil = DrawNode::create();
Point rectangle;
rectangle = Vec2::ZERO;
rectangle = Vec2(clippingNode->getContentSize().width, 0);
rectangle = Vec2(clippingNode->getContentSize().width, clippingNode->getContentSize().height);
rectangle = Vec2(0, clippingNode->getContentSize().height);
Color4F white = { 1, 1, 1, 1 };
//画一个多边形 这画一个200x200的矩形作为模板
stencil->drawPolygon(rectangle, 4, white, 1, white);
clippingNode->setStencil(stencil);
//用来设置显示裁剪区域还是非裁剪区域的
clippingNode->setInverted(false);//在裁剪区域内显示加入的内容
return true;
}
```
然后这个初始化, 在Win32和Android下是完全不同的显示样式
win32:
android:
这里有2个问题:
1、Android的裁切区域要比Win32下大。
2、Android中没有了背景的显示, 变成白色的, 只有裁切区域显示
我看网上有大大们说, 需要改Android下的代码。
this.mGLSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
我改了也没有效果。
还请大家帮帮忙

