gpt4 book ai didi

Cocos2d-x 2.2 版 CCRenderTexture 无法在 Samsung Tab 4 上正确渲染图像(型号 SMT231)

转载 作者:行者123 更新时间:2023-12-01 13:53:04 25 4
gpt4 key购买 nike

我一直在尝试绘制使用渲染纹理移动的触摸。这是我的代码:

void GameplayLayer::visitSpriteContinuously()
{
CCRenderTexture* canvas = CCRenderTexture::create(screenSize.width,screenSize.height,kCCTexture2DPixelFormat_RGBA4444);

canvas->setPosition(ccp(screenSize.width/2,screenSize.height/2));
this->addChild(canvas);

GameSprite* drawSprite=GameSprite::gameSpriteWithFile(“circle.png");
this->addChild(drawSprite);

CCPoint start = starttouchPosition->getLocationInView();
start = CCDirector::sharedDirector()->convertToGL(start);

CCPoint end = starttouchPosition -> getPreviousLocationInView();
end = CCDirector::sharedDirector()->convertToGL(end);

float distance = ccpDistance(start, end);
canvas->begin();
for (int i = distance; i > 0; i--)
{
float difx = end.x - start.x;
float dify = end.y - start.y;
float delta = (float)i / distance;
drawSprite->setPosition(ccp(start.x + (difx * delta), start.y + (dify * delta)));
drawSprite->visit();
}
canvas->end();

}

除了三星 Tab 4 之外,我在几乎所有我测试过的 android 设备中都得到了想要的结果。在 Tab 4 上,即使使用的基本 png 图像是单色,绘制的 Sprite 也具有点状图案。我搜索了很多,但没有找到任何有用的东西。如果有人见过类似的问题并有解决方案,请告诉我。以下是截图:

在其他设备上呈现的“A”:
Other Devices:

在三星 Tab 4 上呈现的“A”:
Samsung Tab 4

最佳答案

在某些设备中,不正确支持 RGBA4444 格式,因此在这种情况下,您必须使用 RGBA8888 格式。
所以,只需在您的代码中更改这一行

CCRenderTexture*    canvas = CCRenderTexture::create(screenSize.width,screenSize.height,kCCTexture2DPixelFormat_RGBA4444);


CCRenderTexture*    canvas = CCRenderTexture::create(screenSize.width,screenSize.height,kCCTexture2DPixelFormat_RGBA8888);

关于Cocos2d-x 2.2 版 CCRenderTexture 无法在 Samsung Tab 4 上正确渲染图像(型号 SMT231),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com