21 2011-7
是的,corona制造的多款游戏目前占据了美国区收费榜前20的7个位置,他们分别是Toy Studio的4款app,Crawl Space Games, Fire Maple Games, 和Yobonja。

20 2011-7
先开篇,慢慢补充。
1)更适合做游戏,不适合做应用程序,主要是界面部分,官方提供的UI部分代码非常不好用,自己实现又很耗时耗力。
2)缺少一个好的IDE
3)因为不支持代码文件(lua文件)存放于子目录中,对包的支持不好,所以构建大型工程支持不太好。
4)每次编译都是把代码上传到服务器编译的,所以很慢。
5)第三方SDK没法自己去集成
6)无法扩展Corona的功能,官方的更新速度太慢。这是反映的最多的一个问题
20 2011-7
大家都知道了吧,“Bubble Ball”这个游戏在苹果appstore下载两百万次,甚至把“愤怒的小鸟”这个大热游戏挤下头名宝座。
http://tech.163.com/11/0118/10/6QM3ODV8000915BF.html这个游戏的开发者Robert Nay才14岁,这也是新闻炒作的原因,但是我更关注的是在新闻中发现了我熟悉而且喜欢的编程语言Lua。
Robert本来想用Objective-C来开发游戏,但是发现学习曲线有些陡峭,于是转向了Corona http://www.anscamobile.com ,在abcnews采访Robert
...
20 2011-7
Corona是国外一款著名的跨平台App开发框架,开发语言为lua,能够生成iOS和android两个版本的发布文件。可以免费下载试用,如果需要发布应用程序,需要购买授权,价格为349美金。但是笔者注册时只能用paypal支付,不能用信用卡,所以比较麻烦,建议大家购买时可以到淘宝去找paypal代购。
现在简单介绍一下Corona框架,corona是原flash的开发小组成员,后出来创业的工程师开发的,所以其设计理念和flash接近一致。
1.高性能图形
...
20 2011-7
把以下代码加入到corona提供的ui.lua文件中即可。注意:1)代码中依赖ui.lua中提供的其他函数,所以必须得加在文件的尾部。function newRadio( params ) local fontsize = params.fontsize or 12 local fontcolor = params.color or {255,255,255,255} local t = display.newGroup() t.value = 0 local btnOff, btnOn, lblText = nil, nil, nil...
20 2011-7
Corona物理API
corona可以让你很容易的添加物理系统到你的游戏中,甚至如果你以前从来没有用过物理引擎。因为底层引擎是基于众所周知的Box2D构建的,我们采用了一个很激进的设计,使得传统需要的大多数代码都被省略了。
另外,我们无缝地把物理引擎添加到移动开发中:例如用我们的新的“gameUI”库,任何物理对象现在都可以被多点拖放,且只需要一行代码。
为了使用corona的物理引擎,你可从熟悉的Corona对象开始。Corona对待物理 body属性,就像对待它们图像对象的属性的扩展一样:任何标准的display object,包括image,向量绘图,或 animated sprites,都可以被“物理化”,且在模拟器中自动和其他对象交互。
...
20 2011-7
Application Configuration Options
Corona applications may be configured through two optional Lua files, which should be saved to your project folder along with your main.lua file:
• config.lua - Handles global content scaling and alignment for multiple screens, along with a variety of other runtime options like the framerate and antialiasing for vector graphics. (See documentation here)
...
20 2011-7
避免使用全局变量的策略
1 Overcoming Scoping Issues of Locals
2 确保listener中的一切都是Local的
暂停和重启动画
如果你采用可编程动画技术,你就可以暂停或重启动画。这里有一个关于如何用按钮开始和停止一个动画的例子:
管理屏幕
当你设置你的程序界面时,你可能喜欢以屏幕的形式来查找你的分镜头,比如splash屏幕,home屏幕(有时候叫主屏幕或菜单屏幕),或一切其他屏幕。
组对象时在每个屏幕上管理内容最完美的方法。这样,你可以创建一个组给splash屏幕,一个组给home屏幕,另一些给其他屏幕。你可以利用transition库来创建动画在屏幕间transition(淡出入、滑动等)。
...
20 2011-7
Display 库
属性:
display.contentCenterX -- (equals 0.5*display.contentWidth)
display.contentCenterY -- (equals 0.5*display.contentHeight)
display.contentScaleX -- (the ratio between content pixel and screen pixel width)
display.contentScaleY -- (the ratio between content pixel and screen pixel height)
...
20 2011-7
注意: 本文档的信息适用于Corona 2.0 SDK Beta 7(或更早版本)的开发者,开发技术对内存管理技术的倚赖,不再使用。尤其,如果你存在代码这样使用 object:removeSelf() or group:remove(),你需要确保它不再倚赖于display object生命周期过时的假设。
再Corona 2.0 SDK的Beta 8期间,当display object被从他们的父组中删除,他们将被转换为孤儿。这些孤儿display object将不会被垃圾回收,直到所有指向它们的lua引用都被剔除。也就是说,lua代码中不再可以被访问。然而,当如display object被CG时,那些display object渲染相关的资源,不会立即被CG。而是,corona只能定期搜集这些资源(最多256 enterFrame事件后),并且这个特定的处理只会发生在屏幕更新时。
...