cherrychoi25
2011年6月的编程语言排行榜Lua语言一军突起,一举进入前十名。这与一年前苹果决定在iOS系统上使用Lua语言密不可分。但是,你了解如何用Lua语言在iOS上开发应用吗?将向各位介绍Lua语言的iOS应用开发框架——Wax,其中在iOS平台上无比火爆的《愤怒的小鸟》就是由Lua语言用Wax开发的。全文共分两部分,第一部分将带您深入探讨Wax具有的一些好处,同时演示把Lua与Xcode 4和iOS软件开发工具包(SDK)集成起来必不可少的实际步骤。第二部分将逐步介绍如何用Wax构建一个简单的应用程序,显示Twitter上的当前趋势话题列表,可以用按钮来更新内容。Wax是什么?Wax for iPhone这种框架在开发时,旨在把Lua脚本语言和原生Objective-C应用编程接口(API)结合起来。这意味着,你可以从Lua里面,使用任何和全部的Objective-C类及框架。从技术上来讲,Wax结合了Objective-C类和原生C代码。Lua语言嵌入了C语言,然后Objective-C类并入到其中。为什么使用Wax?Wax是免费的、开源的。与其他一些基于Lua的移动开发解决方案不同,Wax是个开源框架,只需要你花一点点时间就可以上手,不需要花钱。不喜欢Wax的工作方式,或者发现实施方面的缺陷?源代码可免费获取,你总是可以改动源代码,以满足自己的需要。可以利用原生API。这意味着,为教Objective-C而编写的教程很容易由Lua for Wax来改动和编写。这还意味着,你的应用程序在外观感觉上总是如同原生应用程序,不过又得到了用Lua这种高效脚本语言编写代码可以节省时间的好处。可以使用Xcode。这意味着,模拟器和设备部署都轻而易举,不会轻易与未来的iOS版本决裂。可以利用所有现有的Objective-C库。如果你有一个Objective-C类是以前编写的,不需要改动,就可以将它用在Lua中——只要把它放入到Xcode。Three20之类的库也是一样。只要按照正常指令来添加库,就可以使用Lua代码访问它们。可以利用Wax Lua模块。Wax有几个内置的Lua模块,使得异步HTTP请求和JavaScript对象标注(JSON)创建/解析极其容易而快速(因为模块是用C编写的)。没必要管理内存。不再需要操心内存分配之类的事务。Wax为你处理这一切。Lua类型自动转换成对应的Objective-C类型,反之亦然。 这意味着,如果你调用了需要NSString和NSInteger的某个方法,但传送了Lua字符串和Lua整数,Wax会为你搞定转换工作。这种转换功能强大,甚至可以处理复杂的Objective-C特性,比如选择器。你可以利用所有上述特性。不需要精挑细选。你获得所有特性!#p#副标题#e#OK,实在太棒了!我该如何安装Wax?首先你需要Xcode和iPhone SDK。要是你还没有这些东西,赶紧弄一份!用Xcode创建项目我们先创建一个新的“基于Windows的项目”,名为“WaxApplication”。别忘了把设备设置成iPhone:通过Finder浏览到你保存该项目的文件夹。创建三个新的文件夹:wax、scripts和Classes。你的文件夹看起来应该像这样:设置Wax(第一部分,处理文件)首先,下载源代码的压缩包。Wax放在GitHub上,那样下载源代码就很容易。从这里下载压缩包。现在,解压缩刚下载的文件。浏览到刚解压缩的文件夹。它会有“probablycorey-wax-124ca46”之类的名称。你的屏幕现在看起来应该像这样:现在,执行下列操作:◆拷贝lib和bin文件夹,把它们粘贴到位于WaxApplication项目文件夹里面的wax文件夹。◆将xcode-template/Classes/拷贝到WaxApplication项目文件夹。◆拷贝xcode-template/scripts/文件夹,将它放到WaxApplication项目文件夹里面。◆打开WaxApplication项目文件夹里面的wax/lib/extensions/文件夹。删除SQLite和xml文件夹,下图所示:你的屏幕应该看起来像这样:设置Wax(第二部分,配置项目)现在用Finder选择Classes、scripts和wax文件夹,把它们拖入到Xcode项目中。把它们放到显示“Wax Application”和“1 target, iOS SDK ”的那个条下方。不要勾选显示“Copy items into destination group’s folder(if needed)”的复选框。点击完成。现在点击显示“Wax Application”和“1 target, iOS SDK ”的那个条。接着采取下列步骤:◆在右边窗格中,寻找“Targets”标题,点击“WaxApplication”。点击“Build Phases”(构建阶段)选项卡。点击“Copy Bundle Resources”(复制捆绑资源),清除所有lua文件。◆在右下角,先点击“Add Build Phase”(添加构建阶段),再点击“Add Run Script”(添加运行脚本)。◆将Shell设成/bin/zsh◆将Shell下面的文本区域设成“$PROJECT_DIR/wax/lib/build-scripts/”。你的屏幕现在看起来像这样:改动在左边窗格中,打开名为“WaxApplication”的文件夹。接下来,打开“Supporting Files”文件夹。接着,打开,把文件的内容换成如下://这是发生奇迹的地方!//Wax并不使用nib文件来装入主视图,一切在文件里面完成#importUIKit/""#import""#import""#import""intmain(intargc,char*argv[]){NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];wax_start("",luaopen_wax_http,luaopen_wax_json,luaopen_wax_filesystem,nil);intretVal=UIApplicationMain(argc,argv,nil,@"AppDelegate");[poolrelease];returnretVal;}别忘了保存文件!删除不必要的文件删除、和三个文件。打开“WaxApplication/Supporting Files/”,然后删除键是“Main nib file base name”的那一行。#p#副标题#e#测试安装的Wax按(命令+回车键),或者按左上角的“Run”,就可以在模拟器中运行应用程序。要是一切正常,你会看到一个简单的应用程序会说“Hello Lua!”。要是你没看到这个消息,检查之前的步骤,看看有没有步骤漏了。查看Lua展开Scripts文件夹,打开。你会看到运行该应用程序的Lua代码。你可能会先注意到,没有语法高亮。遗憾的是,对于Xcode中的Lua语法高亮问题,我还没有发现稳定的解决方案(是你发现了,请留言告诉我!)。接下来你可能会注意到,没有方括号,不过使用了像UIScreen和UIWindow这些类。那是由于你在使用Lua构建一个AppDelegate类;在苹果和苹果的代码看来,你在使用Objective-C、构建Objective-C类!方法名称你可能还注意到奇怪的方法名称“colorWithRed_green_blue_alpha”。要是你熟悉Objective-C,就知道方法名称可以有冒号。Lua中的函数名称不能有冒号。为了补偿这个差异,凡是Objective-C中隔开方法名称的地方,在Lua中都换成下划线。比如说:Objective-C中的colorWithRed:green:blue:alpha对应于Lua中的colorWithRed_green_blue_alpha。Objective-C 中的selectRowAtIndexPath:animated:scrollPosition:对应于Lua中的selectRowAtIndexPath_animated_scrollPosition面向对象的模型Lua的另一个问题是,它没有像Objective-C那样的继承体系。Lua中根本没有类。为了克服这个问题,Wax突出显示了放在每个Wax Lua文件最前面的一个函数:waxClass。在默认的中,这一行看起来像这样:waxClass{"AppDelegate",protocols={"UIApplicationDelegate"}}想通过Lua创建一个Objective-C类,就要使用waxClass{“CLASS NAME”, “PARENT_CLASS”}这个函数。你添加到该Lua文件的所有之后的函数(在同一个文件里面)都会作为实例方法,自动添加到新的类。的这一行显示,还可以定义你的“类”定义哪些协议。虽然waxClass解决了定义Objective-C可以使用的类这个问题,但还是存在一个问题:由于Lua没有类,它没有像Objective-C那样的动态“自”变量。为了克服这个问题,Wax自动将每个方法的第一个变量作为类的当前实例。你可以发现,当你查看中的“applicationDidFinishLaunching”时,第一个变量是“自”变量,即使Objective-C版的这个方法只有1个变量。然而,如果你非得将类的当前实例作为每个方法的第一个变量来传送,就会很烦人,于是添加了一些语法上的便利(syntactical sugar)。不是使用“.”操作符在Lua中进行“方法”调用,而是使用了“:”操作符:localview=(CGRect(0,0,100,100))--以下一模一样view:addSubview(someView)(view,someView)值得一提的另一个重要方面是,Wax不支持Objective-C属性。Wax迫使Lua和Objective-C只与方法进行联系。-- 这不行 你而是需要使用getter/setter方法View:frame()someView:setFrame(someFrame)只用于Lua的变量你可以使用点.操作符,为任何Objective-C对象创建成员变量。不像冒号:操作符(用于对Objective-C类/实例调用方法),点.操作符可以针对对象的Lua方面,动态创建成员变量(对象的Objective-C方面对这些变量一无所知)。在对象的生命周期之内,都可以使用成员变量。输出到控制台还显示了你如何可以编写调试文本、输出到控制台。你可以使用函数“puts”。内存管理我之前说过,使用Lua的话,你根本没必要分配、保留和释放内存。你在调用任何初始化器之前,根本不需要调用内存分配。实际上,如果你这么做的话,程序可能会出现内存泄漏。太棒了!接下来做什么?你已经深入了解了专门针对Wax的Lua的基本知识,就可以准备编写iPhone应用程序了!在这个教程的第二个部分,我们将只用几行Lua,就可以编写出拥有刷新按钮的一个Twitter示例应用程序。看完这个教程是不是你也有信心打造出自己的《愤怒的小鸟》呢?小贴士Lua程序设计语言 是一个简洁、轻量、可扩展的脚本语言。Lua读作/'lua/(噜啊),是葡萄牙语中"Luna"(月亮)的意思。Lua是一种轻量语言,它的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快。它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程式里。和许多"大而全"的语言不一样,网路通讯、图形界面等都没有默认提供。但是Lua可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。事实上,现在已经有很多成熟的扩展模块可供选用。Lua的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括大话西游II、仙境传说、魔兽世界、战锤40k、博德之门、轩辕剑外传汉之云等,在移动领域最著名的便是《愤怒的小鸟》。#p#副标题#e#
hocc豆叮
开发Rovio是2003年在芬兰成立的一家小型公司,最开始他们开发的是Java游戏,之后转向了智能手机。 到了2009年春天,Rovio的营收仍非常低,该公司极度渴望开发出一款脍炙人口的经典游戏。就在这时,Rovio游戏设计师Jaakko Iisalo脑海中蹦出了一个想法,他画出了许多没有翅膀和腿,圆嘟嘟但异常愤怒的形象的小鸟。起初,这些小鸟并没有被加入游戏元素,但所有人都喜欢这些小鸟。 Rovio相信这款游戏一定能够在苹果iPhone手机中受到用户追捧。其次,苹果当时新开设App Store应用商店不久,而且App Store已经让应用走向市场简化了流程。在Rovio开发团队经历了8个月的开发之后,《愤怒的小鸟》最后终于出笼。 在第一款《愤怒的小鸟》开发过程中,他们的核心团队中只有4名成员,所有的事情都是他们独立完成的。 《愤怒的小鸟》是他们开发的第52款游戏。 《愤怒的小鸟》开发团队在第一款游戏时设计了200多个关卡。他们使用了一个关卡编辑器,从而更轻松地创造关卡,但同时他们也尝试着创造一些独特且具有更高质量的关卡。 发行2009年12月,《愤怒的小鸟》登陆App Store,售价为99美分。随后,Rovio又针对其它手机操作系统和平板电脑推出了各种版本的《愤怒的小鸟》。 截至11月底在Android平台上有700万次的下载,10月份Android版发布时仅用了2天就突破了200万的下载次数。 2010年10月Rovio公司于Android操作系统上推出《愤怒的小鸟》普通版。 2010年10月《愤怒的小鸟万圣节》作为《愤怒的小鸟》的小分支发布。制作商以后逢年过节都会应景的推出《愤怒的小鸟XX版》,而“万圣节版”和“圣诞节版”是每年固定发行的版本。这些类似版本被统称为《愤怒的小鸟季节版》。 2010年年底,《愤怒的小鸟》成为App Store十大付费iPhone应用之一。 2011年1月,与电影公司20世纪福克斯宣布一起联手打造的作品。加入了福克斯公司旗下3D动画电影《里约大冒险》剧情与主题的《愤怒的小鸟里约版》,丰富了游戏元素,首次进军好莱坞领域。在之后的3月份登陆后,10天内就实现了1千万次付费下载。 2012年3月发行《愤怒的小鸟太空版》,“小鸟”们追踪自己的死敌,一起飞上了太空。在太空的环境下,加入“重力圈”的概念,使玩家体验到新鲜的物理效果。这部作品也打破了之前系列游戏的记录,4天突破1千万次付费下载。 2012年11月发售《愤怒的小鸟星战版》上架后2个半小时登上了App下载榜榜首的位置。 下载量 版本 下载量 统计时间 系列游戏全球累计下载量 20亿 2014年1月24日 日语版 3000万 2013年4月7日 中文版 1亿 2011年10月31日 太空版 1亿 2012年6月7日
jsp的的技术框架有很多, 我最近在给一些同学写代码大部分都是javaweb的, 大部分都是s2sh框架或者ssm框架可以做各类管理系统 电商系统 二手交易平台
学生课程设计(论文)题 目: 贪吃蛇游戏程序设计指导学生姓名: 学 号:200910801001所在院(系): 计算机学院专
一切一切…网上搜搜…给我分吧…回答者: 不知道吧哈哈哈 - 高级魔法师 七级 5-11 08:53这个不知道吧哈哈哈就是垃圾厚脸皮跟人家要分
2011年6月的编程语言排行榜Lua语言一军突起,一举进入前十名。这与一年前苹果决定在iOS系统上使用Lua语言密不可分。但是,你了解如何用Lua语言在iOS上
就写写需求分析,可行性分析,概要设计,详细设计,程序结构,程序功能,重点技术,结论