Cocos2d iphone 应用程序在实际 iphone 上运行异常

Posted

技术标签:

【中文标题】Cocos2d iphone 应用程序在实际 iphone 上运行异常【英文标题】:Cocos2d iphone app runs oddly on actual iphone 【发布时间】:2012-07-13 14:37:45 【问题描述】:

我有一个使用 Cocos2d 的简单应用程序,在模拟器上运行时所有图像都显示良好。但是,当我在 iphone 上运行它时,所有图像都被放大并且数量惊人,使游戏无法玩。

有没有人知道为什么会发生这种情况以及如何解决它?

【问题讨论】:

不同的屏幕分辨率。我猜你可能将模拟器作为 Retina 显示器运行,而你的 iPhone 不是 Retina? 对于旧设备使用 image.png,对于视网膜 iPhone 使用两倍大小的 image-hd.png。在您的代码中,您无需引用“image-hd.png”文件,只需加载“image.png”,cocos2d 将完成剩下的工作。 感谢您的回复,这也是我最初的想法。但是当我在模拟器上以视网膜显示模式运行应用程序时,它运行良好,所有图像大小都合适,但实际 iphone 仍然存在同样的问题 另外,它的放大倍数很大,我必须将 CCSprites 的比例设置为 0.035 以使其接近其原始大小,然后一些图像仍然被截断。跨度> 【参考方案1】:

您需要考虑您的模拟器正在运行视网膜的可能性。可能您正试图在较旧的非视网膜设备上显示更高分辨率的图像。

您也可以在任何图像上添加后缀“-hd”,然后 cocos2d 会自动将其识别为更高分辨率。但是当你真正完成你的应用程序时,你会希望每张图片有 2 个副本,每个分辨率都有一个。

【讨论】:

感谢您的回复,这也是我最初的想法。但是当我在模拟器上以视网膜显示模式运行应用程序时,它运行良好,所有图像大小都合适,但实际 iphone 仍然存在同样的问题 另外,它的放大倍数很大,我必须将 CCSprites 的比例设置为 0.035 以使其接近其原始大小,然后一些图像仍然被截断。跨度> 您是否尝试过从手机上删除您的应用程序并进行干净的构建并重新安装?【参考方案2】:

我发现问题在于,当我使用spriteWithFile 初始化精灵时,它会将其设置为特定大小。当我稍后更改精灵纹理时,它保留了最后一张图像的大小,但具有不同的纹理。

【讨论】:

以上是关于Cocos2d iphone 应用程序在实际 iphone 上运行异常的主要内容,如果未能解决你的问题,请参考以下文章

我的第一个 iPhone 的 Cocos2d 应用程序中的问题?

iPhone,Cocos2D - 在触摸屏时向左/向右移动精灵

内存使用问题。实际 iPhone 中的游戏崩溃

Cocos2d 应用程序可在除 iPhone 4(任何操作系统)之外的所有设备上运行,CCBatchnode 在 addchild 后仅显示黑屏

Cocos2D iPhone 后台运行后应用程序不响应触摸

使用 NSUserDefaults 保存/加载数据 (cocos2d iphone)