【发布时间】:2015-08-11 17:58:03
【问题描述】:
我正在尝试从图像构建精灵。使用 Image 和 Texture2D 类,然后从 texture2D 创建一个精灵。
我正在加载的图像是 512x512,我希望 createWithTexture 的两个版本的行为相同,但事实并非如此。代码如下:
Image* image = new Image();
image->initWithImageFile(fileName);
Texture2D* texture = new Texture2D();
texture->initWithImage(image);
//If used this way everything works as expected
Sprite* spr= Sprite::createWithTexture(texture);
//If used with a Rect weird result occurrs.
Sprite* spr= Sprite::createWithTexture(texture,Rect(0,0,512,512));
spr->setAnchorPoint(Vec2(0,0));
spr->setPosition(Vec2(0,0));
spr->setScale(1.0f,1.0f);
this->addChild(spr);
这里是第一个使用 Rect 的结果:
这里是没有 Rect 的第二个版本:
有人知道发生了什么吗?我需要使用使用 rect 的方法,因为将来我会从这张图片中创建一堆精灵。
Edit1:调试完两个版本的精灵后。我注意到没有 Rect 创建的那个显示了 0,0,240,240 的矩形。而不是我提供的 0,0,512,512。为什么是 240?
提前致谢。
【问题讨论】: