1. 为什么用 lua 替换 luajit
1、新建一个名为1.lua的文件春笑或,里面只有一句话print("Hello Lua"),新建一个空的out.lua脚本文件
2、开始--运行--cmd
3、luac -o out.lua 1.lua
注: luac -o [编译后脚本名] [脚本名],必要时带上脚本路径,如:回车之后,再打开out.lua就可以看到编译好的字节码了然后实验一下,执行这个字节码脚本,可以看到lua原生的解释器可以直接解析luac编译出来的bytecode脚本,很方便!重点:
做完了以上的一系列之后,我照着这个方法编译项目中的脚本,然后在cocos2dx环境下使用,发现不行!于是又查了一下资料,发现2dx使用的是luajit,lua原生编译出来的bytecode和luajit是不兼容的,所以照着上面方法编译出来的bytecode脚本无法在2dx中使用。
解决这个问题其实很简单,就是用2dx自带的luajit编译lua脚本,下面附上luajit编译bytecode的方法:
1、在cocos2d-x-2.2.3\scripting\扒伍lua\luajit\LuaJIT-2.0.1\src目录下有个msvcbuild.bat批处理文件,需要先把luajit.exe这个东西给编译出来。
2、打开visual studio的命令行工具,这个只要装了vs都会有,在安装目录里面可以找到。
3、用vs的命令行工具cd到luajit的src目录
4、执行msvcbuild.bat批处理文件,编译出luajit.exe编译完成之后,会在src目录下生成一系列文件,其中有一个luajit.exe接下来就可以使用luajit.exe编译lua脚本的bytecode了:luajit -b [脚本名] [编译后的脚本名],执行完后会在src目录下生成一个已经编译成bytecode的jit.lua文件
下面把编译之后的jit.lua放在2dx中试一下,以HelloLua工程为基础,把jit.lua放到\samples\Lua\HelloLua\Resources下升早,修改AppDelegate.cpp中的lua调用为std::string path = CCFileUtils::sharedFileUtils()->fullPathForFilename("jit.lua");
2. javascript和LUA这两个脚本语言哪个强一些
lua运行更快。
lua经常和c/c++一册盯渗掘起用,而js主要用州喊和于web编程。至于强大,其实都差不多的,只是用途不同而已。
3. lua语言和易语言哪个做游戏辅助好,哪个更容易学 大伙给点建议
当者瞎态然是lua语言了。易首源语言不开放,怎么嵌入到你的游戏神纯中都是个问题。所以觉得很多学易语言的真心没思考清楚。
4. 浅谈游戏脚本策划的职能
脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。下面我们就来谈谈游戏脚本策划究竟是干什么的。想了解更多相关资讯请持续关注我们应届毕业生培训网。
游戏脚本策划主要干什么?
脚本策划近几年逐渐被重视。越来越多的引擎,越来越多的游戏,对游戏脚本的定义和开发的支持,让脚本的功能越来越强大,也成为游戏策划开发游戏的利器之一。 在介绍脚本策划之前,我有必要先解释一下什么叫脚本。
通俗点说,脚本就是利用程序实现一个简单的循环。放在游戏中的具体例子就是:大家都知道,网络游戏中的练级场所会定时、定点刷新怪物。但这怪物是怎么刷新出来的?当然不是由GM上线刷新,而是利用事先设计好的脚本,系统将自动按时间和地点刷新怪物。 而脚本策划所要做的,就是制作游戏中不同的脚本,比如上面提到的怪物刷新脚本、任务脚本等等。
游戏脚本策划是策划团队中的“程序员”
脚本策划一般需要有一定的编程基础,因为脚本本身其实就是一种程序。
脚本策划的工作内容比较单一,属于偏执行方面的策划,是策划团队中的“程序员”,主要负责游戏中脚本程序的编写。
脚本策划类同于程序员但又不同于程序员,因为会负责游戏概念上的一些设计工作。通常是游戏设计的执行者。因此游戏脚本策划必须要有编程功底,他的工作是任务等的脚本编写,以及管理程序提供的各种需要策划维护的脚本接口。
脚本语言就是游戏世界得以运行的基石
如果说开发语言是游戏程序得以运行的基石,那么脚本语言就是游戏世界得以运行的基石。一切剧本、图片、音乐、动画等皆是由脚本语言整合在一起并由程序解释执行的。所以可以说脚本是程序与剧本之间的桥梁,所以也是主程序与剧情负责必须共同掌握的部分。
脚本是如何形成的?程序设计的本身拓展和设计越来越复杂,而且分划出不同的类型,同时在继承发扬中丢失着,底层的构架被越来越多的人所抛弃,程序的东西,让人望而却步,无法驾驭,而脚本就如程序管理员一样抓住程序设计本身一些最基本的构成思路和运行机理,是一种总结概括,把重点提炼,把相关归类,把过程简化,保留一般的`规则。 脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
各个游戏公司常用的脚本有:LUA和PYTHON
有些游戏公司的脚本,是由公司程序员自己编写的一种开发工具。
常用游戏脚本中,目前应用比较广泛的有几种,一个是LUA,一个是PYTHON。
LUA脚本,在魔兽世界中发扬光大(后来的征途中好像也采用LUA脚本),好多游戏都开始接受并且学习这种脚本知识,以期能应用到自己游戏中,游戏脚本的好处就是,能够快速的调动一些游戏资源,利用自己手上的关键字段进行指挥,统领,运营部门最适用。
lua脚本与python脚本对比分析
1、两者的定位不同。python的定位在于自身的独立开发,即是说python定位于自己能解决所有的问题。lua定位在与其它的代码,尤其是C++代码进行相互配合的编译,单独的Lua本身没有任何的意义。
2、站在解决问题的角度上看。python依靠自身越来越强大的库,让编程者能实现越来越多,越来越复杂的问题。lua本身则必须与其它的编译语言结合,才能解决问题。以C+++lua来举例。单独的C++,因为C++的复杂性,在其解决问题提供方便的同时,也给程序员带来了很大的麻烦,这些麻烦主要有两个方面:1,C++本身,特别是能用好C++,对程序员就来说就是一个很高的要求。2,在解决复杂问题时,C++程序结构的复杂性和逻辑实现的复杂性,给程序员对程序的改进和维护带来了很大的麻烦。而C++与Lua的结合,让C++可以只负责为lua提供各种基本的功能函数库,而Lua调用这些库来实现各种逻辑功能。这种分工可以让程序员将程序中的基本代码库和逻辑实现代码进行分离,使程序的效率和可维护有了很大的提高。所以,如果真的要站在解决问题的角度来对python和lua进行对比的话。实际上,是C++与python进行对比,而与lua无关。
3、python与C++对比,我觉得python与C++对比的优势就在于其所提供的基本库,大大的降低了程序复杂度与可维护性对程序员本身的要求。比如,同样的功能,如果是C++来做的话,可能其程序员必须具备三年的经验,如果是python来做,而python又有解决问题所需要的库的话,一个具有一年程序经验的程序员可能就能完成了。但是,同样的,如果是C++与Lua结合来解决问题的话,可能就只需要半个高级程序员和一个只有c语言一年经验的程序员就可以了。半个高级程序员负责提供lua的函数库,另一个程序员,只需要用这些代码库实现逻辑就行了。
综上所述,C+++lua的开发模式,和python源代码库开发+python脚本开发模式其实是一样的。但是站在程序员的角度上来说,C+++lua就更为简单一些,因为除去基本的lua解释代码外,C++可以为lua动态提供各种函数库。而python程序员则必须受制于python所提供的各种功能库。所以,如果解决一些具有普遍性和重复性的问题时,python是有优势的,因为有很多的代码可以不用重写,而C+++lua则必须重构。如果是解决一些非普遍的问题,如果python本身没有提供解决这些问题的库的话,python程序员,就必须走回C++的老路。
5. 游戏开发中常用哪种脚本语言
随着《魔兽世界》(以下简称wow)在世界范围内流行,脚本渐渐被人们所熟知。由于wow强大的自定义界面系统,Lua这一脚本语言一举成名。x0dx0ax0dx0a其实早在Lua脚本语言被大众所熟知以前,游戏业内人士就已经开始使用脚本来开发游戏了。我们熟悉的很多国内的网络游戏大都运用了脚本开发,比如网游的长青树“梦幻西游和《大话西游2就大量应用了脚本技术。特别是《大话西游2》,其实现基于Lua脚本游戏开发的时间要远早于《魔兽世界》。在脚本技术上,国内与国外其实是站在同一起跑线上的,并不存在什么差距,这也为国内游戏产业赶超国外游戏产业提供了强有力的技术保证。x0dx0ax0dx0a在单机游戏时代,脚本这个词几乎很少出现,那么,为什么在网络游戏时代它却成了业界的宠儿呢?原因是多方面的。x0dx0ax0dx0a单机游戏时代,无论游戏主机还是PC机,它们的性能都非常低下,从而需要具有较高执行效率的编译型语言对机器的性能进行“压榨”。随着科技发展和硬件性能的不断提升,脚本逐渐被开发者所接受并利用,但这并不是脚本流行起来的决定性因素,真正的原因还在于游戏市场有这方面的需求。x0dx0ax0dx0a网络游戏时代的市场竞争激烈、变化莫测,如果延用单机时代一年半载才出一个新版本的开发方式,必然会被游戏行业激烈的市场竞争所淘汰。正是这种游戏市场需求旺盛和开发工具效率底下之间的矛盾,促使脚本语言迅速地发展起来。脚本的兴起使得传统编译吵碰型语言(asngC/C )的性能优势在硬件功效大幅攀升的今天已经不复存在。x0dx0ax0dx0a除了市场和硬件这两个因素之外,还有一点我们不能忽略。那就是用C/C 进行游戏开发的高成本和高项目风险。随着java/.net逐渐流行,学习C/C 编程语言的人越来越少,而网络游戏市场的需求却越来越庞大,在程序人才大量匮乏的情况下,造成了c,C 人才的高成本。即便是有能力雇佣大量C/C 程序员的公司,在开发游戏的过程中,也不能无视C/C 的高级特性和高度灵活性带来的高项目风险。C/C 是易学难精的编程语言,在开发大型项目的时候由于程序员的水平参差不齐,所以极易造成沟通不畅。不仅如此,c,C 滥用的高级特性也容易引入大量bug。正是由于这些原因,游戏公司开始在游戏中使用脚本,希望通过脚本来解决这些高成本、高风险的问题。x0dx0ax0dx0a二.脚本的现状x0dx0ax0dx0a脚本不仅解决了c/C 无法解决的开发效率难题,还降低了开发的成本和风险。因此脚本技术在游戏业内蓬勃发展起来,乎槐并且已经成为游戏业中不可或缺的一环。纵观当前脚本技术现状,形势一片大好,不仅语言百家争鸣,而且书籍种类也越来越多;不仅在游戏业界开花结果,在web等其它应用领域也大放异彩。x0dx0ax0dx0a首先,我们来看看目前比较流行的脚本:Python、Lua、ruby和Erlang。Python和Lua是网络游戏开发的中坚力量;ruby凭借 rubyonrails的web开发框架的强劲力量,其在游戏业的发展前途亦不可小视;Erlang在高并发性上的原生优势吸引了无数追求高性能网游服务器的开发人员的目光。x0dx0ax0dx0a其次,我们来看看书籍方面。大家都知道,文字对语言的普及起到了催化剂的作用,甚至可以看作是语言的有机组成部分。Python经过基金会的多年经营而得到NASA、Google重用的原因,就是由于其相关书籍种类比较丰富;Ruby随着升顷谈RoR的流行,这两年行情看好,书籍也出版得越来越多了;Erlang是典型的少众语言,但随着多核时代的来临和高并发网络应用的需求,Erlang有着光明的发展前景,现在<
6. 什么是Lua
Lua是一种 简单橡缓、可扩展、可移植及高效的脚本滑仔语言
是一种面向 C 的 API 存在一个特别的 虚拟栈 ,通过这个栈与lua交换数据
栈大大简化了C API 的设计与使用,还能保证 其他语言与lua 有效的隔离开
从设计目的来讲:
1.就是梁让模某一个功能模块,通过lua进行扩展
2.想只靠lua开发程序,是不太现实的
7. 请问自己的软件如何运行Lua脚本
programming in lua 有相关的例子,一般脚本语言和c/c++之类的互相调用分两类,一类是扩展,就是将c/c++模块封装起来给脚本语言用,用swig做封装很方便的,一类是嵌入,就是在c/c++等应用中嵌入lua引擎,一般是用来分离经常变化的逻辑部分,比如WOW就是用lua语言作为扩展,用户可以编写lua脚本来完成一些特定功能的机器人。你要做的就是使用lua c api来在你的程序中执行lua。类似这种:
int iErr = 0;
lua_State *lua = lua_open (); // Open Lua
luaopen_io (lua); // Load io library
if ((iErr = luaL_loadfile (lua, "test.lua")) == 0)
{
// Call main...
if ((iErr = lua_pcall (lua, 0, LUA_MULTRET, 0)) == 0)
{
// Push the function name onto the stack
lua_pushstring (lua, "helloWorld");
// Function is located in the Global Table
lua_gettable (lua, LUA_GLOBALSINDEX);
lua_pcall (lua, 0, 0, 0);
}
}
lua_close (lua);
8. 游戏脚本语言,是不是lua超越python了
哪个语言好 哪个语言不好 都是不客观的,片面的
但是在实际应用上lua确实比python更加普遍,只是因为更适合
lua本身的定位 就是嵌入其他程序,完成一部分的逻辑的功能 而本身不提供强大的机制,因此lua本身就只有200K左右
而python的定位则完全相反,python需要能独立完成所有工作,因此它的定位是大而全,不同于小而精的lua,它的大小 有好几十M,这样的大小,对于大部分的游戏而言,不能被接受,所以lua使用的更多