iphone - Cocos2d-iphone 对 iPhone 4 高分辨率的支持

标签 iphone performance cocos2d-iphone

我正在尝试创建一个相对简单的带有 2D 图形的游戏,但动画有些复杂。我尝试使用基本的核心图形和核心动画库来开发游戏,但游戏对象的动画性能并不令人满意(即抖动/延迟)。

所以,我现在正在研究 Cocos2D,它看起来非常有前途,直到我检查了 iPhone 4 的高分辨率支持。这似乎根本不起作用,但话又说回来,我才刚刚开始调查一下。

文档似乎提到了关于该问题的一件事,因此只需使用 CCDirector 来设置比例因子,可以像这样完成:

if( [[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
    [[CCDirector sharedDirector] setContentScaleFactor: [[UIScreen mainScreen] scale] ];
}

但是,这并没有给出我期望的行为。它只是将要使用的像素数量加倍,这意味着我必须在所有代码中考虑“双像素因素”。

在核心图形/动画库中,我们使用的坐标空间不会改变。在幕后,它只是将所有内容加倍以填充 iPhone 4 高分辨率屏幕,并使用可用的 @2x 图像。这实际上效果很好,游戏逻辑不需要考虑设备的分辨率。 Cocos2D 似乎在这方面的实现很糟糕,让我不想登上 Cocos2D 的火车。

我发现了有关该主题的一些其他主题,但没有不涉及解决方法的真正答案。这是修复了吗?是我做错了还是 Cocos2D 根本就没有准备好高分辨率?有没有 Cocos2D 的替代品可以满足我的需求?

最佳答案

很抱歉无耻的 self 推销,但我想这可以帮助你。我最近用 cocos2d 写了两篇关于高分辨率的小博客文章,并将它们放在我们的网站上。

第一个详细介绍了如何启动和运行 cocos2d,包括如何实现常规图像与高分辨率图像的自动加载行为的建议修复。

此外,还有第二篇文章试图详细介绍点和像素之间的差异。 UIKit 完全基于点,这就是为什么您不必重新处理所有坐标。与 UIKit 相比,cocos2d 基于像素工作,因此与分辨率相关。您可以通过一些相当简单的转换为 cocos2d 提供处理点而不是像素的方法。我已将它们实现为 CCDirector 和 CCNode 的类别,以使它们易于使用。显然,这些类别中的方法并不是唯一应该“指向”的方法。例如,在 CCLabel 上指定大小或在 CCMoveBy 上指定任何位置是基于像素的,因此也必须重新设计...

查看博客:http://apptech.next-munich.com/ (我会直接链接到这些文章,但作为新用户,我只能在答案中发布一个链接)。

希望这对您有所帮助并帮助您入门!

关于iphone - Cocos2d-iphone 对 iPhone 4 高分辨率的支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292051/

相关文章:

iphone - UITableViewCell accessoryType 已设置,但 accessoryView 为 nil。如何设置 accessoryView backgroundColor?

iphone - 使用 scrollToRowAtIndexPath 滚动到最后一个 UITableViewCell :atScrollPosition:animated using NSFetchedResultsControllerDelegate methods

java - 绘制应用程序内存和 CPU 性能指标 Java Netbeans

java - 使用 ActiveMQ 调度程序的性能下降问题

cocos2d-iphone - ADBannerView 委托(delegate)方法从不触发

ios - 根据 ios 中的标签文本动态定位按钮

iphone - 关于从 iPhone 应用程序和 S3 上传照片的架构和设计问题

c++ - 避免检查可能如果

ios - 在 View 中创建、拖动和选择一些图标

ios - 传递CGPoint *而不是CGPoint []无效吗?