Image 为什么Cocos2d要放大我的图像?

Image 为什么Cocos2d要放大我的图像?,image,background,cocos2d-iphone,scaling,Image,Background,Cocos2d Iphone,Scaling,这是一段非常简单的代码,但我不知道为什么Cocos2D继续将我的背景图像放大x2 我正在使用cocos2dhelloworld模板。除了删除-(id)init中的所有内容外,我没有对代码做任何修改 我接着补充说: //ADD BACKGROUND CGSize winSize = [[CCDirector sharedDirector] winSize]; CCSprite *background = [CCSprite spriteWithFile:@"just

这是一段非常简单的代码,但我不知道为什么Cocos2D继续将我的背景图像放大x2

我正在使用cocos2dhelloworld模板。除了删除-(id)init中的所有内容外,我没有对代码做任何修改

我接着补充说:

        //ADD BACKGROUND
    CGSize winSize = [[CCDirector sharedDirector] winSize];
    CCSprite *background = [CCSprite spriteWithFile:@"justAbackground.png"];
    background.position = ccp(winSize.width/2, winSize.height/2);
    [self addChild:background];
当我构建并运行它时,它的大小是图像的两倍

如果我加上:

background.scale = .5;
这正是它应该的尺寸

图像像素尺寸与iPhone完全相同

我错过了什么


提前谢谢。

也许你被点坐标和像素坐标弄糊涂了

在普通iPhone上,点和像素尺寸是相等的,两者合计为480x320像素/点。在视网膜设备上,点坐标保持为480x320,但像素坐标加倍为960x640

现在,如果您想在视网膜设备上使用像素坐标显示常规图像,则必须禁用视网膜显示模式。否则cocos2d将放大任何不带-hd后缀的图像到点尺寸


另一种方法是启用视网膜显示模式,并使用-hd后缀(justAbackground hd.png)以两倍的分辨率保存图像。

“完全相同”它们是什么?也许,你在非视网膜设备上使用视网膜纹理?是的,就是这样,谢谢。我已经阅读了关于-hd后缀的文档,这可能是显而易见的,但由此产生的一个推论是:启用视网膜显示,保存没有-hd后缀的图像,将意味着Cocos2d将报告图像内容大小为其像素大小的一半。对吗?不,相反。高清图像将被报告为点大小的一半,但是你也可以得到真实的像素大小。请注意,如果你计划在用户的屏幕截图库中保存图像,考虑用户可能在将来升级他们的设备,因此你需要考虑更小的屏幕截图也需要在UI中正确显示。