[air for ios] 三小时开发一个iOS飞行射击游戏
http://www.badyoo.com/index.php/2012/07/04/158/index.html
2012-07-04
好吧,这次这个demo 没什么难度,主要是思路,这个文章主要讲解是air在移动端的优化:
一部飞机。重力感应控制移动。点击屏幕发射直线子弹。一些飞过来的敌人。
子弹击中飞机屏幕晃动。
最终发布的ipa文件下载
(支持iPhone/iPad需要越狱,文件大小为4.78M)
首先本教程用到的东西:
第一步:
当然准备资源了,这里头,准备了一些游戏资源。资源来自
coocs2d
的一个例子,资源包括一下几个东西:
-
五个船的逐帧动画;
-
一个陨石;
-
星河背景;
-
银河系;
-
类似太阳的球体;
-
类似光斑的玩意;
-
类似黑洞的玩意;
-
一个子弹;
接着全部绑定bitmapdata 导出swc库供游戏使用;如果你完全不会导出或者绑定?那么可以以下我录制的视频:

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

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

Ok项目建立完成;
接下来修改air 配置文件,该文件在src 下一个后戳为xml的文件;
打开修改几处地方,如果你找不到那么就查找下面几个字段吧:
如果实在不知什么意思那么看下面文章解救你:
<id
> 修改成的配置文件id 这个必须的。所有ios 应用开发都要用证书;
<aspectRatio
>
修改成
landscape
这个意思是让程序横屏;
<renderMode>
修改成gpu 这个是程序的渲染模式主要有三个模式
cpu
, gpu
, or direct
;
<
requestedDisplayResolution>
修改成
standard
因为我们的资源是iphone版的所以使用标准的分辨率即:iphone 系列 480 *320 ipad 1024*768;

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

第三步:
首先讲解文档类

文档类在这个游戏中的作用:
设置整个程序的大小,帧频。对齐方式。启动多点触摸。设置游戏品质。初始化游戏资源。初始化游戏场景;
下面的类就不一一说明的。代码内都有注释;
游戏的逻辑:
飞机就只有一个移动没有别的都东西,那么直接用重力感应进行位置的移动:

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

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

最后讲重点吧,as3 在移动端的效率优化:
1:
由程序的架构开始,游戏要适应不同的平台,那么ios上主要是iphone 还有ipad。
我们针对两个平台使用一下分辨率 iphone 480*320 ipad1024*768;
2:游戏品质设置成”LOW”就可以了。因为游戏使用的是位图,所以这个品质不会影响到游戏的画面,但是可以提高游戏很好的效率。
3:还有你会发现我游戏里只有一个主循环。然后主循环执行需要循环判断的对象内一个frame方法,这是因为一个游戏最好使用一个主循环,而不是监听更多的主循环。这样可以提高一定的效率;

4:对象的引用问题,直接引用比遍历效率高,不要什么东西都依靠遍历,如果你游戏主角只有一个。那么要进行判断的时,只要多的去跟少的进行判断,而不是少的去遍历多的。
5:代码上的优化,其实这个很多人应该都知道,在数组长度不是经常变化时,建议用一个int来记录长度,之后的for循环去跟这个值进去比较遍历,而不是去访问数组的长度;
还有在这里说明一点,Vector 效率是不如array 的 而官方解释是说Vector效率高于array。但是我在无数实验中,发现效率最高还是array;

6:注意游戏内存的使用,手机游戏一般都是那些在这个场景使用才会去加载,使用。不用的内存记得即时删除回收内存。适当的使用Gc ,flash自带的Gc在手机端是可以使用的。还有Gc方法在电脑上调试时,。如果你在程序启动1秒内,也就是第一帧时使用gc,那么程序就会卡死。这个是编译器的问题。10.1以上的flash播放器都会 回收不在显示区域30秒后的位图内存。这个会导致你下次使用这个位图,程序底层会在内存中重新new 。那样程序将出现假死。
7;位图的使用,手机游戏就不用说了,都是使用位图的,不管是oc 或者c++做ios游戏都是使用位图的。而我的位图引擎那么快,原理就是上面这几点。不说笑。效率在低端机子别starling这些stage3d引擎效率还要高。不要以为原生效率会比as3好多少,其实不怎样的,cocos2d这样的引擎, 在效率对比上跟as3的stage3d是差不多的。只是人家的代码执行效率会高很多。
分享到:
相关推荐
《iOS游戏应用源代码——jshmrsn-Above---Beyond-Air-Combat.zip》这个压缩包文件包含了开发iOS游戏“Above & Beyond Air Combat”的源代码。这款游戏可能是一款空战模拟类游戏,允许玩家体验激动人心的空中战斗。...
内容概要:本文探讨了高吞吐量网络链路异常检测中流量采样技术的应用及其效果。面对现代分布式信息系统频繁遭受的网络安全威胁,特别是互联网服务提供商(ISP)面临的威胁,作者提出一种通过减少数据采样频率以降低异常检测计算复杂度的方法。文中介绍了实验环境、系统架构、采用的数据聚合与采样方法以及用于检测异常的人工智能模型(基于自编码器神经网络)。通过对一个真实中型ISP生产环境中实际网络流量数据进行研究,该研究展示了即使在较低采样频率情况下仍能保持较高的异常检测准确性,尤其是针对持续时间较长的DDoS攻击更为显著。此外,论文还验证了所提系统的有效性和应用潜力,为构建高效的网络安全监控机制提供了新思路。 适用人群:对于计算机网络安全、数据分析或机器学习有兴趣的研究人员和从业人员,特别是那些专注于提高异常检测性能和应对高流量数据流的技术人员。 使用场景及目标:适用于希望在不影响业务操作的前提下引入额外层次防护措施的企业级网络管理员;研究者可参考本文中提出的流量预处理方式来探索不同的统计分布和采样间隔设置;企业可以通过部署该类系统快速响应潜在的安全事件并降低成本。
unity ui画线插件
内容概要:本文研究了在基于正交频分多址接入(OFDMA)的中继网络中进行带有比例公平性的下行链路资源分配问题。作者们通过联合优化中继选择、子载波分配和功率分配问题,并采用拉格朗日对偶分解方法求解这一复杂的NP完全问题。实验结果显示所提出的算法相较于启发式算法能显著提高系统吞吐量,并带来更好的用户间公平性。 适合人群:通信工程、无线网络优化、电信行业研发工程师和研究人员。 使用场景及目标:主要应用于提升4G移动通信系统的频谱效率及缓解频率选择衰落的问题,确保多用户之间的传输速率更加公平。同时适用于研究OFDMA技术及其相关领域的学者和技术专家。 其他说明:文中提供了详细的数学模型和模拟结果图表支持理论发现,并讨论了各种假设条件下的性能对比。此外还探讨了连续松弛技巧在解决NP完全问题时的应用价值以及通过调整算法参数来获得近似最优解的方法论意义。
程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面) [程序系统设计]MATLAB打印纸缺陷检测GUI(不同缺陷类型,GUI界面)
邮件分拣组态王6.55和西门子S7-200plc联机程序2023,带io表,运行效果视频 ,邮件分拣; 组态王6.55; 西门子S7-200plc; 联机程序2023; IO表; 运行效果视频,邮件分拣组态王6.55与S7-200PLC联机程序2023版:带IO表运行效果视频
内容概要:本文提出了一种新的基于跨时间差异(CTD)注意力机制的变化检测方法(称为CTD-Former),用于高效地提取多时相遥感图像中的变化特征。作者重新审视了自注意力机制并深入挖掘多时间相位图像间的关系变化,构建CTD变压器编码器和解码器来增强这些特征。此外,还引入了一致性感知模块(CPB)以保护变化区域的空间结构。实验结果显示,在LEVIR-CD、WHU-CD和CLCD数据集上,该模型相比于当前最优的方法表现出更好的性能。 适合人群:对深度学习、遥感图像处理、尤其是变化检测感兴趣的研究人员和技术专家,特别是熟悉变换器网络架构的从业者。 使用场景及目标:此方法适用于需要从多时相对比遥感影像中识别变化情况的任务,如环境监测、灾害评估、城市规划等领域内的应用开发,能够帮助研究者和决策者更准确地了解地面物体随时间的变化趋势。 其他说明:源代码可在GitHub仓库中获取,这为未来的研究提供了一个重要的参考平台,有助于推动该领域的进一步发展。
该项目是个人实践项目,答辩评审分达到90分,代码都经过调试测试,确保可以运行!,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载,欢迎沟通,互相学习,共同进步!提供答疑!
fajslghjlghg
2008-2020年各省每十万人口高等学校平均在校生数数据 1、时间:2008-2020年 2、来源:国家统计j、统计nj 3、指标:行政区划代码、地区名称、年份、每十万人口高等学校平均在校生数 4、范围:31省
毕业设计&课程设计 基于STM32单片机基于RFID的电动车停车管理系统(软件源码+硬件资料+部署教程+功能说明+演示视频),高分项目,开箱即用 用户 分为老师 及 学生 管理员 管理员 登录 用户管理 电动车管理 车卡rfid 电动车进出记录 挂失申请列表 解冻申请列表 补办列表申请 用户(只能管理自己的车) 注册(注册的时候选身份,选择学生或者老师) 登录 个人信息查看 电动车管理 进出校记录 挂失申请 解冻申请 补办申请
内容概要:本文探讨了一种新的基于深度强化学习的方法来解决旅行商问题与无人机组合优化(Traveling Salesman Problem with Drone, TSP-D),针对当前无人机辅助卡车配送中面临的协同调度难题进行了改进。研究者提出一种混合模型(HM),整合了注意力编码器和长短期记忆网络(LSTM)解码器的优势,从而有效地记录了多个车辆的动作序列并实现了协调路径规划。该方法在各种测试用例上展现了卓越性能,并能显著提高大型问题实例的计算效率,同时在实际应用场景如最后一步送货中有潜在的巨大价值。 适合人群:对物流系统优化和无人机应用有兴趣的专业人士,特别是从事最后一公里交付方案设计和技术实施的研究人员及工程师。 使用场景及目标:本研究所提出的深度学习框架主要适用于城市环境中复杂条件下的车辆和无人驾驶飞行系统的共同优化配置,目的是为了找到最优的货物递送方案,在最短的时间内完成所有的客户服务任务并返回起点。 其他说明:实验结果显示该算法在随机位置数据集和现实情况中的优越性超过了现有传统算法,表明它不仅能在简单理想情况下发挥良好效果,同样可以在更为复杂的条件下表现出稳定的性能。
北京中启航向科技发展有限公司开发的城市生活垃圾处理费智慧征管系统,是一个全方位、一体化的解决方案,旨在协助城市管理部门高效、准确地收取生活垃圾处理费。该系统利用先进的人工智能和数据分析技术,实现垃圾分类、计量和收费的智能化管理,提升城市环境卫生质量,同时优化行政资源,提高征收效率。
水测试试纸行业剖析:欧洲是全球最大的市场,占40%的份额.pdf
《电力电子技术(第5版)》王兆安_第2章_电力电子器件
基于STM32的直流电机加减速正反转控制串口输出控制系统(P 1100009-基于STM32的直流电机加减速正反转控制串口输出控制系统(PCB 原理图 报告 源代码 proteus lcd1602) 功能描述:基于STM32平台 1、实现了电机控制正转、反转的功能 2、实现了电机控制加速、减速的功能 3、实现了串口输出控制信息的功能 4、串口可以模拟WIFI 蓝牙 RS232 等带有串口的功能。 资料包含: 1、源代码工程文件 2、仿真工程文件 3、lunwen报告1W字以上 4、原理图工程文件 5、PCB工程文件 ,核心关键词:STM32、直流电机、加减速、正反转控制、串口输出、控制信息、WIFI、蓝牙、RS232、源代码工程文件、仿真工程文件、原理图工程文件、PCB工程文件。,基于STM32的电机串口控制综合系统(含正反转、加减速及多种串口通信功能)
ZYNQ7010采集AD7768
apollo 泊车轨迹优化代码 hybridastar+iaps平滑优化+obca平滑优化 第一个图是matlab绘制 后面的图是程序用sdl库绘制 ,apollo;泊车轨迹优化;hybridastar;iaps平滑优化;obca平滑优化;Matlab绘制;SDL库绘制,基于Apollo的泊车轨迹优化:HybridA*算法+平滑优化技术的实现与展示
乳酸链球菌素检验表格(食品添加剂食用香精质量验收记录表).docx