`

[air for ios] 三小时开发一个iOS飞行射击游戏

    博客分类:
  • IOS
阅读更多

[air for ios] 三小时开发一个iOS飞行射击游戏

http://www.badyoo.com/index.php/2012/07/04/158/index.html

2012-07-04

好吧,这次这个demo 没什么难度,主要是思路,这个文章主要讲解是air在移动端的优化:

 

一部飞机。重力感应控制移动。点击屏幕发射直线子弹。一些飞过来的敌人。

子弹击中飞机屏幕晃动。

游戏最终效果截屏(PC或Mac上需要使用Flash CS6的模拟器来测试重力感应操控,方法在这里 Flash CS6 体验尝鲜(4)——使用模拟器模拟测试移动端AIR应用 ):

 

三小时开发一个iOS飞行射击游戏001.jpg

最终发布的ipa文件下载 (支持iPhone/iPad需要越狱,文件大小为4.78M)

首先本教程用到的东西:
badyooFramework Rc1.2 :http://115.com/file/beov8dbg
本文章源码:http://115.com/file/e71nf1au
第一步:
当然准备资源了,这里头,准备了一些游戏资源。资源来自 coocs2d 的一个例子,资源包括一下几个东西:
  • 五个船的逐帧动画;
  • 一个陨石;
  • 星河背景;
  • 银河系;
  • 类似太阳的球体;
  • 类似光斑的玩意;
  • 类似黑洞的玩意;
  • 一个子弹;
接着全部绑定bitmapdata 导出swc库供游戏使用;如果你完全不会导出或者绑定?那么可以以下我录制的视频:

三小时开发一个iOS飞行射击游戏002.jpg

Ps:在这里如果位图一多时,大家可能会不知怎么去绑定bitmapdata好。这里只要在库面板里ctrl +a 全选所有位图右键一起绑定。
第二步:
在flash builder 4.5以上新建一个ios的手机项目。Air的sdk用air 3.3的。因为最新版的对手机端是有优化的。

 

然后手机设置这里,目标平台选择ios ;权限只要全屏;其他默认;

三小时开发一个iOS飞行射击游戏003.jpg

下一步在构建路径那把下载下来的badyooFramework Rc1.2的swc库给添加进来:

三小时开发一个iOS飞行射击游戏004.jpg

Ok项目建立完成;

接下来修改air 配置文件,该文件在src 下一个后戳为xml的文件;

打开修改几处地方,如果你找不到那么就查找下面几个字段吧:
如果实在不知什么意思那么看下面文章解救你:
<id > 修改成的配置文件id 这个必须的。所有ios 应用开发都要用证书;
<aspectRatio > 修改成 landscape 这个意思是让程序横屏;

<renderMode> 修改成gpu 这个是程序的渲染模式主要有三个模式 cpu gpu , or direct
< requestedDisplayResolution> 修改成 standard 因为我们的资源是iphone版的所以使用标准的分辨率即:iphone 系列 480 *320 ipad 1024*768;

三小时开发一个iOS飞行射击游戏005.jpg

修改项目属性下的编译器属性;

 

在附加的编译器参数下加入:
-optimize=true 这个官方文档说是优化程序用来着
-version=16 这个是因为air 3.3对应的播放器版本是16
-include-libraries ../Assets.swc 把刚刚我们做的swc资源库给编译进游戏中

三小时开发一个iOS飞行射击游戏006.jpg

第三步:
首先讲解文档类

三小时开发一个iOS飞行射击游戏007.jpg

文档类在这个游戏中的作用:
设置整个程序的大小,帧频。对齐方式。启动多点触摸。设置游戏品质。初始化游戏资源。初始化游戏场景;

 

下面的类就不一一说明的。代码内都有注释;

 

游戏的逻辑:
飞机就只有一个移动没有别的都东西,那么直接用重力感应进行位置的移动:

三小时开发一个iOS飞行射击游戏008.jpg

子弹的逻辑:

子弹主要是依靠游戏的主循环进行碰撞判断还有移动,然后就是子弹的移除了,因为你子弹是一直创建的,所以超出屏幕或者碰到敌人就删除吧:

三小时开发一个iOS飞行射击游戏009.jpg

怪物逻辑:

其实就是一直向坐标走。没有别的,还是有就是死亡了,新建一个敌人在所有敌人的最后面。

三小时开发一个iOS飞行射击游戏010.jpg

最后讲重点吧,as3 在移动端的效率优化:

1: 由程序的架构开始,游戏要适应不同的平台,那么ios上主要是iphone 还有ipad。 我们针对两个平台使用一下分辨率 iphone 480*320  ipad1024*768;

2:游戏品质设置成”LOW”就可以了。因为游戏使用的是位图,所以这个品质不会影响到游戏的画面,但是可以提高游戏很好的效率。

 

3:还有你会发现我游戏里只有一个主循环。然后主循环执行需要循环判断的对象内一个frame方法,这是因为一个游戏最好使用一个主循环,而不是监听更多的主循环。这样可以提高一定的效率;

三小时开发一个iOS飞行射击游戏011.jpg

4:对象的引用问题,直接引用比遍历效率高,不要什么东西都依靠遍历,如果你游戏主角只有一个。那么要进行判断的时,只要多的去跟少的进行判断,而不是少的去遍历多的。

5:代码上的优化,其实这个很多人应该都知道,在数组长度不是经常变化时,建议用一个int来记录长度,之后的for循环去跟这个值进去比较遍历,而不是去访问数组的长度;

还有在这里说明一点,Vector 效率是不如array 的 而官方解释是说Vector效率高于array。但是我在无数实验中,发现效率最高还是array;

三小时开发一个iOS飞行射击游戏012.jpg

6:注意游戏内存的使用,手机游戏一般都是那些在这个场景使用才会去加载,使用。不用的内存记得即时删除回收内存。适当的使用Gc ,flash自带的Gc在手机端是可以使用的。还有Gc方法在电脑上调试时,。如果你在程序启动1秒内,也就是第一帧时使用gc,那么程序就会卡死。这个是编译器的问题。10.1以上的flash播放器都会 回收不在显示区域30秒后的位图内存。这个会导致你下次使用这个位图,程序底层会在内存中重新new 。那样程序将出现假死。

7;位图的使用,手机游戏就不用说了,都是使用位图的,不管是oc 或者c++做ios游戏都是使用位图的。而我的位图引擎那么快,原理就是上面这几点。不说笑。效率在低端机子别starling这些stage3d引擎效率还要高。不要以为原生效率会比as3好多少,其实不怎样的,cocos2d这样的引擎, 在效率对比上跟as3的stage3d是差不多的。只是人家的代码执行效率会高很多。

 

分享到:
评论

相关推荐

    AirPrint_Installer无线打印 含补丁AirPrint iOS 5 FIX

    AirPrint是由Apple公司开发的一项技术,它允许iPhone、iPad和iPod touch等iOS设备通过无线网络直接打印文档、照片、电子邮件等内容,无需安装任何特殊的驱动程序。AirPrint支持多种文件格式,包括PDF、JPEG、PNG等,...

    as3 adobe air ios airplay

    AS3是ActionScript的第三个主要版本,常用于构建AIR应用。 2. **AirPlay API集成**:在AS3中使用Adobe AIR连接AirPlay,需要调用特定的API接口。这些API允许应用检测并连接到可用的AirPlay设备,以及发送媒体流和...

    flash as3 Air for ios 应用内支付 IPA ANE

    在移动应用开发领域,Flash AS3 Air for iOS的内购功能是开发者常用的一种技术,用于在应用程序内部提供付费服务或商品。这篇教程将深入探讨如何实现这一功能,并结合ANE(Adobe Native Extensions)来构建IPA(iOS...

    ios9 airplay源码

    AirPlay是由Apple公司开发的一种无线技术,允许用户将音频、视频、照片和镜像从一个设备无线传输到其他支持AirPlay的设备上,如Apple TV或第三方扬声器。此源码的目的是帮助开发者理解并实现AirPlay的最新协议,以在...

    ios开发者证书,flex,flash,air手机开发使用

    总结起来,这个压缩包文件可能包含的是与iOS开发者证书相关的指南或工具,帮助使用Flex、Flash和Air进行手机应用开发的人员了解如何生成和使用证书来构建和签署IPA文件,以便在越狱或非越狱的iOS设备上运行。这个...

    airprint for windows X64/X86

    总之,“AirPrint for Windows X64/X86”是一个使Windows用户也能体验到AirPrint便捷性的工具,通过简单的安装和配置步骤,使得跨平台的无线打印成为可能。只要遵循提供的说明和注意事项,用户可以轻松地在Windows...

    IOS-安卓内购 for air

    1. **ActionScript库**: 为了在Air应用中实现内购,你需要一个支持iOS和Android的ActionScript库,如iap-as3或air-in-app-purchase。这些库封装了与平台内购系统的交互,简化开发过程。 2. **适配器模式**: 由于iOS...

    Flash开发iOS应用

    一、Adobe AIR在iOS上的性能提升 Adobe AIR,作为Adobe公司的跨平台运行环境,自版本2.6起,在iOS设备上的性能得到了显著提升。这些改进包括: - BitmapCapture in StageWebView:允许开发者在StageWebView中捕获...

    ios Airprint,打印报表

    在iOS平台上,AirPrint是一项非常实用的功能,它允许用户通过Wi-Fi无线网络将内容从iPhone、iPad或iPod touch直接打印到支持AirPrint的打印机上。这个“ios AirPrint,打印报表”项目显然关注如何利用AirPrint技术来...

    ios airplay 播放视频

    在iOS开发中,AirPlay是一项重要的技术,它允许用户将音频、视频以及屏幕内容无线投射到支持AirPlay的设备上,比如Apple TV或者带有AirPlay功能的智能电视。本教程将深入探讨如何在iOS应用中实现AirPlay播放视频,以...

    flex、flash及air等移动设备ios开发者证书

    flex、flash及air等ios开发证书(P12格式) 压缩包内含两个文件: ios.p12(ios开发证书) mobileprovision.mobileprovision(配置文件) 用该证书及对应配置文件可以免99刀的Apple developer费用,编译出的ipa...

    Airplay投屏Android接收端项目,兼容最新iOS系统

    AirPlay是一种苹果公司开发的无线技术,主要用于在不同的设备间无线传输音频、视频以及显示镜像。这个项目是关于在Android设备上实现AirPlay的接收端功能,使得Android设备能够接收来自iOS系统的音视频推送,特别是...

    怎么在电脑上玩苹果ios游戏.doc

    然后,我们将深入探讨苹果ios游戏开发的基本步骤,包括使用SpriteKit引擎开发游戏、创建游戏Project、添加游戏Sprite、添加游戏逻辑等。 一、ios模拟器安装 ios模拟器电脑版是让用户通过电脑模拟ios系统的工具,...

    flex、flash及air等ios开发证书

    ios.p12(ios开发证书) mobileprovision.mobileprovision(配置文件) 用该证书及对应配置文件可以免99刀的Apple developer费用,编译出的ipa程序可以直接在越狱后的ios设备中真机测试运行。 用Flex Builder以...

    Airprint让带打印机的电脑可以打印iphone照片

    如果您的打印机不支持,您可以寻找第三方解决方案,如使用"AirPrint_Installer.exe"这样的程序,它可能是一个将非AirPrint打印机转换为AirPrint兼容打印机的工具。 接下来,您需要将iPhone与打印机连接到同一Wi-Fi...

    10个iOS开发的小demo

    整理一下【7年前的咯】 10个日常应用开发的小demo 放大镜 自定义弹框空间 动态视图开门 cell数据库的添加 仿试衣间效果滑动 缓存能默认过期时间 coco2d小游戏 airplay手机之间的传输等。 自己觉得可以就下载。

    Airplay开发项目资料

    AirPlay是苹果公司推出的一种无线流媒体技术,主要用于在苹果设备之间进行音频、视频和屏幕镜像的无线传输。这个开发项目资料包显然是为那些希望深入理解...对于想要涉足AirPlay开发的工程师来说,这是一个宝贵的资源。

    Object-Cios苹果app开发入门object-c例子demo14个实例 一般编程问题

    【Object-C】ios苹果app开发入门object-c例子demo14个实例 一般编程问题 【实例简介】 ios苹果app开发入门,object-c,例子,demo,14个实例 初学者难得的学习实例 【实例截图】 【核心代码】 归档 ├── Air...

    iOS实例开发源码——jshmrsn-Above---Beyond-Air-Combat-416b529.zip

    这可能是一个飞行战斗模拟游戏,名为“Beyond Air Combat”,由开发者jshmrsn创建。在这个项目中,我们可以深入研究iOS应用开发的各种技术和实践。 首先,iOS开发主要使用Apple的Swift编程语言,这是一种现代化、高...

Global site tag (gtag.js) - Google Analytics