iPhone5来了,如何移植之前的原生应用和cocos2d游戏

iPhone5来了,如何移植之前的原生应用和cocos2d游戏,第1张

概述本文转载自:http://blog.sina.com.cn/s/blog_4b55f68601018j0h.html 感谢eseedo的分享。 iPhone5来了,屏幕大小是4寸,给开发者带来了不大不小的麻烦。 下面分两种类型来看,一种是使用Cocoa Touch开发的原生应用,一种是使用Cocos2D引擎开发的游戏。 1.原生应用 原生应用的移植相对比较简单,一般只需按照以下步骤就可以搞定了:

本文转载自:http://blog.sina.com.cn/s/blog_4b55f68601018j0h.html

感谢eseedo的分享。

iPhone5来了,屏幕大小是4寸,给开发者带来了不大不小的麻烦。

下面分两种类型来看,一种是使用Cocoa touch开发的原生应用,一种是使用Cocos2D引擎开发的游戏。


1.原生应用
原生应用的移植相对比较简单,一般只需按照以下步骤就可以搞定了:
 

(1)下载安装Xcode4.5GM

(2)提供一个名为Default-568h@2x.png的加载图(1136*640),注意这个命名规范只适用于加载图。

(3)如果auto resizing masks设置恰当,则基本上没有影响

(4)如果不是,则需要设置auto resizing masks。

vIEw.autoresizingMask = UIVIEwautoresizingFlexibleWIDth | UIVIEwautoresizingFlexibleHeight;

(5)使用iOS6所特有的auto Layout(但应用就只适用于iOS6)。

关于自动布局请参考教程:

http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2

(6)关于自动旋转:UIVIEwController原有的shouldautorotatetoInterfaceOrIEntation:方法被弃用。因此需要使用supportedInterfaceOrIEntationsForWindow:和shouldautorotate方法。

- (BOol)shouldautorotate {    return YES;}- (NSUInteger)supportedInterfaceOrIEntations {    return UIInterfaceOrIEntationMaskAllButUpsIDeDown;    }


(7)如果对界面布局有较高的要求,则根据不同设备类型提供不同的图片
可以通过以下方式来判断:
if(UI_USER_INTERFACE_IdioM() == UIUserInterfaceIdiomPhone){    CGSize result = [[UIScreen mainScreen] bounds].size;    if(result.height == 480)    {        // iPhone Classic    }    if(result.height == 568)    {        // iPhone 5    }}


2.Cocos2D开发的游戏
 
对于游戏应用来说,自动布局的作用不大,需要提供两种分辨率的图片。
首先当然是要下载Xcode4.5 GM和最新的Cocos2d v2.1 beta了。


此外需要对设备类型进行判断,以便根据分辨率不同使用不同的图片
有两种方法:
(1)根据屏幕大小来判断设备类型,也就是如果判断设备的高为1136,则为4寸设备。
方法同上。
 
(2)使用第三方的类,这里要介绍下一个UIDeviceHarDWare的类,下载地址:(https://gist.github.com/1323251) 
使用方法(举例):
 
 UIDeviceHarDWare *h = [[UIDeviceHarDWare alloc]init];    Nsstring *platformType = [h platformString];  [h release];        cclabelTTF *device = [cclabelTTF labelWithString:platformType Fontname:@"Marker Felt"FontSize:64];    device.position = ccp(size.wIDth/2,size.height*0.7);    [selfaddChild:device];
需要注意的是,由于手边没有iphone5和touch 6,用4s测的时候,如果把代码换成[h platform],会显示iPhone4,1,因此推测iPhone5会显示iPhone5,1。 这里顺便介绍下UIDevice这个苹果官方提供的类,非常有用。 使用类似下面的代码: Nsstring *deviceType = [UIDevice currentDevice].model; 可以获取设备的类型,如iPhone,iPod touch等等。 还可以获取其它属性: name  设备的名称,比如”My iPhone” systemname  系统类型,如”iOS” systemVersion,固件版本,如”4.0” uniqueIDentifIEr,设备标识符,可惜要被弃用 IDentifIErForvendor,iOS6新增的NSUUID类型,设备唯一标识符,需要注意的是,同一开发商的不同应用享用相同的标识符。 UIDeviceBatteryState,电池状态 isMultitaskingSupported,是否支持多任务 参考文章: http://stackoverflow.com/questions/12396545/how-to-deal-with-iphone-5-screen-size @H_301_115@ 总结

以上是内存溢出为你收集整理的iPhone5来了,如何移植之前的原生应用和cocos2d游戏全部内容,希望文章能够帮你解决iPhone5来了,如何移植之前的原生应用和cocos2d游戏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存