赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 10095 |
最后登录 | 2014-8-13 |
在线时间 | 327 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 327 小时
- 注册时间
- 2011-3-2
- 帖子
- 287
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
猫君说Lua和Ruby没有半毛钱关系是非常正确的,没有用过Lua的人或许还不清楚,Lua和Ruby的差别那是非常之大,大到让人想哭。用惯了Ruby的人看到Lua简直就是看天书一样。
Ruby的语法丰富,内置类型多样,连基本类型都是面向对象的,入门非常容易。Lua一切从简洁高效出发,辅以强大的元编程,闭包与协程的支持,与C语言的结合非常容易,是游戏开发首选的脚本语言。但是正因为Lua的语法太简单了,很多时候需要复杂的语句实现简单的功能,如果说Ruby是七种武器,你可以随意拿出一件耍的得心应手,那lua就是一颗定时炸弹了,内部精巧却威力无穷,当然,绝对不适合新人和业余人士。。。。
XiGN为什么选Lua,Rpg Maker为什么没有手机版?唯一的一个原因 -- Ruby!对,就是因为Ruby,首要原因是iPhone明确表示不支持Ruby作为脚本语言。次要是Ruby的效率实在太让人无语,请看http://www.cnblogs.com/miloyip/archive/2010/07/07/languages_brawl_GI.html提供的一个测试
“512x512像素,每像素10000个采样,Intel C++ OpenMP版本渲染时间为18分36秒。估计Ruby版本約需351天。”
这个例子有点极端了么?Lua和Ruby的对比大致如下:
Test Time(sec) Relative time
IC++_OpenMP 2.861 0.15x
Lua 1,227.656 62.96x
Ruby 77,859.653 3,992.80x
说了半天其实还没有回答猫君的疑问,为什么我老是在说XiGN的时候提到Ruby,那么先请看一段代码
local c = class(Game_Battler)
Game_Actor = c
...
function c:skills()
local result = Array.new()
for i in self.skills_id do
result:push(data_skills)
end
return result
end
...
用过Lua的人都知道,这段代码中的class,Array是用户自己的定义的。如果你对RGSS熟悉的话,还记得这段代码对应的Ruby代码么?
class Game_Actor < Game_Battler
...
def skills
result = []
for i in @skills
result.push($data_skills)
end
return result
end
...
是不是很像呢?
那么如果没有定义class和Array,这段Lua代码会是什么样子?学习过Lua的人可以脑补一下,没学过的人我可以告诉你,差别非常大。所以,猫君的疑问可以解答了,XiGN尽量让Lua的写法向Ruby靠拢,为了让开发效率更高,为了更符合用户的习惯。
所以,别犹豫了,手机是2D游戏的未来(趁着3D的时代还没有到来),如果你没有超凡的创意,别在PC上制作2D游戏了。关注XiGN吧,说不定那就是你的未来。
|
|