【问题标题】:Why is Cocos2d Scaling my Image Up?为什么 Cocos2d 会放大我的图像?
【发布时间】:2012-07-06 02:43:58
【问题描述】:

这是很简单的代码,但是不知道为什么Cocos2D继续把我的背景图片放大2倍?

我正在使用 Cocos2d Hello World 模板。我没有对代码做任何事情,除了删除 - (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 完全相同。

我在这里错过了什么?

提前致谢。

【问题讨论】:

  • “一模一样”它们是什么?也许,您在非视网膜设备上使用视网膜纹理?

标签: image background cocos2d-iphone scaling


【解决方案1】:

也许您对点坐标和像素坐标感到困惑?

在普通 iPhone 上,点和像素尺寸相等,均为 480x320 像素/点。在 Retina 设备上,点坐标仍为 480x320,但像素坐标加倍为 960x640。

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

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

【讨论】:

  • 是的,就是这样,谢谢。我已经阅读了有关 -hd 后缀 cocos2d-iphone.org/wiki/doku.php/… 的文档
  • 所以,这可能是显而易见的,但由此产生的推论是:启用 Retina 显示,并在没有 -hd 后缀的情况下保存图像,意味着 Cocos2d 将报告图像内容大小为一半他们的像素大小。对吗?
  • 不,相反。 -hd 图像将以点为单位报告为一半大小,但您也始终可以获得真实的像素大小。请注意,如果您打算将图像保存在各种用户屏幕截图库中,请考虑用户将来可能会升级他们的设备,因此您需要考虑到较小的屏幕截图也需要在 ui 中正确显示。
猜你喜欢
  • 2014-05-27
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-08
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多