使用cocos2D创建带框的iPad版本

时间:2011-02-15 11:21:13

标签: iphone ipad cocos2d-iphone retina-display

我正在使用cocos2D开发iOS游戏。由于预算限制,我们没有资源来创建自定义iPad版本,但我们仍然希望为iPad用户提供一种体验游戏的方法,而无需升级所有内容。

因此我尝试采用以下方法:

我通过创建-hd图形并在320x480的点坐标空间中工作,开发了iPhone4游戏。我想通过重新定义EAGLView创建iPad版本,使其边界为(64,32,640,960),设计一个填充剩余空间的自定义框架图稿,加载-hd图形但保持点坐标系为320x480

我已经尝试过使用contentScaleFactor,我尝试创建一个scale = 2的自定义基础CCScene,但我发现两种方法都不是最优的。我知道我可以通过设备检测和宏手动转换任何位置,但我最好保留每个坐标。

是否有人熟悉cocos2D源代码可以指出我正确的方向,因为我应该在哪里修改源代码以解决我的问题?

2 个答案:

答案 0 :(得分:1)

您可以在appdelagate中进行设备检查,您可以在此处指定运行特定内容,例如更高分辨率的图形或基于平台的不同代码。

将应用程序移植到iPad并不困难...如果您在应用程序代码中使用点而不是像素。有几种方法可以为iPhone 4和iPad使用高分辨率图形。如果你没有iPad版的预算,听起来你有正确的方法。

对我来说,开发我的游戏的iPad版本的时间是六个月。 iPhone版本为1周。代码库是相同的,你只需要调整一些像Retina显示和一些图形的东西。但是大部分代码都不会改变。

你确定你不想为两者都做吗?它不是那么难或昂贵!我会首先开发iPad版本,然后缩小版iPhone ...更容易“设计大”然后缩小然后它是扩大...特别是图形!只是说...

答案 1 :(得分:0)

我认为你最好的选择是通过你的应用程序并抽象出你的iPhone游戏的定位数学,以便你可以为iPad和iPhone提供它。例如,如果您在代码中使用硬编码位置,则将其替换为变量,并使用条件编译为iPad和iPhone定义#define,或者从屏幕范围在init()中计算它们。这将带来额外的好处,可以轻松支持将来出现的任何其他新形状因素(并且可能是一个很好的习惯,因为“魔术数字”是一种反模式,使您的代码更容易打破)。