lua文件打开闪退什么原因

游戏攻略017

lua文件打开闪退什么原因,第1张

lua文件打开闪退什么原因
导读: 1、lua文件打开闪退什么原因2、lua脚本和unity有什么区别吗?3、lua免流怎么用4、ios怎么运行lua脚本?5、如何用lua *** 游戏6、怎么调试lua性能7、lua如何调用java程序8、lua编程器不知道你具体的情况是什么样
  • 1、lua文件打开闪退什么原因
  • 2、lua脚本和unity有什么区别吗?
  • 3、lua免流怎么用
  • 4、ios怎么运行lua脚本?
  • 5、如何用lua *** 游戏
  • 6、怎么调试lua性能
  • 7、lua如何调用java程序
  • 8、lua编程器

不知道你具体的情况是什么样的

是不是在windows上安装了luaforwindows 然后双击lua脚本执行

如果是上面那样的情况  那可能有2种原因

脚本运行失败 结束了 关闭

2脚本运行正常 结束了 关闭

所以我们只要不让脚本运行结束 或者保留脚本运行过程 就知道到底是哪种情况

可以又键lua脚本选择EditScript 然后按F5运行 就能看到运行的过程了

Unity是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容。

Lua脚本是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

1、首先,新建一个lua脚本的 *** 服务器配置。

2、其次,填入 *** 服务器的ip地址和端口,method选none,再点进File去修改。

3、最后,点右上角的加号键,添加lua脚本,填入下面写好的文件的地址即可。

lua是用c写的没错,游戏引擎是c++->lua->c/c++这个也是没有问题的。回答LZ的疑问应该从lua脚本语特性方面来理解比较合适。

动态解释语言

动态相对于静态,c++属于静态编译语言,好处就是编译后的程序是二进制的,可以直接运行,所以执行的效率高。不好的就是如果因为各种需求要修改程序逻辑,不得不重新走编译打包这个流程。在业务修改频繁或者复杂的工程的情况下,效率是非常低下无法接受的。所以动态脚本的出现可以很好的解决这样的问题,因为lua脚本不需要编译。

2粘合剂作用

C++适合高性能的应用场景,lua灵活适合频繁变化的业务需求,游戏引擎通过lua将这些应用场景的需求粘合起来,简单高效。

总结:取长补短

LZ要学LUA的话一定要去看书 Programming in Lua不一定要买纸质的 至少要有个电子档的 在序言里就已经说了 Lua本身是作为一种扩展语言来定位的 所以本身没有很强大的库 而它优势在于扩展性和兼容性 大部分功能都必须依赖外部的库 本身只有一些很简单的库函数可供调用 但是作为学习的话 那些强大的库大可不必看 基本的那些库学起来已经需要好一段时间了

至于脚本和C等的调用问题 虽然两者都可相互调用,但是毕竟windows与C相连接更紧密,所以一般来说 都是C调用lua 但是当脚本范肌顿可塥玖舵雪罚磨里需要实现一些需要使用c来写程序的时候也会在lua中调用c

lua脚本和C绑定的问题 c写的VC程序在windows下是可以直接运行的,lua写的如果没有解释器是无法直接运行的 所以一般来说写lua程序 想要直接使用的话都会用C来调用

如果您认可我的答案,。

您的采纳,是我答题的动力,O(∩_∩)O!!

调试lua现有的几种方案:

1)luaedit : 编辑断点和断点命中查看那些都让习惯用vs的人感到亲切,但是它只是在纯lua环境下的编辑器,也就是说和期望程序运行中能借用它来调试脚本可能性不大(至少我没有试验出来),能用上的需要给lua脚本做个main脚本函数,并提供一系列伪的c api(由lua实现的函数,只提供制定值的返回)。由luaedit启动脚本main函数进行调试

2)利用 lua debug 库中的 hook ,然后记录一张断点位置表,设置行模式的 hook ,每次进入 hook 都检查是否是断点处,若是就停下来等待交互调试。这个 *** 有效,但是很消耗 cpu 。因为每进入一个新的代码行,都需要回调一个函数。当这个函数本身又是用 lua 写的时候,效率更低。

3)利用lua脚本函数实现,在lua脚本中封装一个断点函数,这种方式结合debug库实现断点和栈信息,然后利用lua环境下的表对函数调用信息进行记录和打印,需要脚本使用者显式提供断点函数的调用。这个办法的优点自己可以组合出适合自己项目的断点调试方案。但缺点是相对繁琐,而且断点命中以后难以和现有方式融合

Lua是一个实用的脚本语言,相对于Python来说,比较小巧,但它功能并不逊色,特别是在游戏开发中非常实用(WoW采用的就是Lua作为脚本的)。Lua在C\C++的实现我就不多说了,网上随便一搜,到处都是这方面的介绍,我想说的是如何在Java下使用Lua以提高编程效率、增强你的程序可扩展性。

首先,要在Java上使用Lua脚本,必须有关于Lua脚本解释器以及Java程序可以访问这些脚本的相关API,即相关类库。我使用的是一个叫做LuaJava的开源项目,可以在: http://wwwkeplerprojectorg/luajava/ 找到LuaJava的类库以及源代码,使用文档资等

下载下来解压后包括两个文件(我下载的是11版本的): luajava-11jar 文件和 luajava-11dll动态连接库文件

luajava-11jar就容易了,就是将其加入你的项目的ClassPath中,以便程序可以使用它提供的API

luaJava-11dll就麻烦了,你必须将其加入你的Windows安装目录下,比如你用的是XP,安装在C盘,那就直接将其加入C:\WINDOWS目录下即可,当然你也可以将其加入你的JDK下的jre下

好了,现在你的项目就可以使用Lua脚本来实现动态扩展功能了!不过不要急,你还得有工具来写Lua脚本吧?不可能用记事本来写吧???????

你可以使用UltraEdit,但你用UE打开lua文件后,会发现和记事本差不多,并没有高亮(可能新版本的支持Lua脚本了),如果你的UE不支持,那么先去UltraEdit的官网下载支持Lua的Wordfiles文件(http://wwwultraeditcom/files/wf/luatxt),是个文本文件(luatxt)。打开UltraEdit安装目录下的wordfiletxt,把luatxt文件中的内容拷贝粘贴到wordfiletxt的末尾,存盘,OK,于是UltraEdit语法高亮项多出Lua一项,可以选择使用了。其他语言的语法高亮支持与此类似。

但你如果是Java开发者,应该都用过Eclipse吧?可否在Eclipse下直接就写Lua脚本呢?答案是可以的!

这当然是Eclipse的强大的插件管理功能啦,你可以去下载luaeclipse插件来使你的Eclipse拥有编写Lua脚本的能力(既可以高亮显示你的脚本,是不是很爽呢),你可以在这里下载:http://wwwideaiscombr/luaeclipse/

下载后安装后,你的Eclipse就可以建立和编写Lua脚本了,注意设置一下首选项中关于LUA的属性(Eclipse安装插件就不用我说了吧????)

好了,现在一切都准备好了,让我们来一个HelloWorld吧!

首先在Eclipse先建立一个TestLua项目,然后编写如下程序:

import orgkeplerprojectluajava;

public class Hello

{

public static void main(String[] args)

{

LuaState L = LuaStateFactorynewLuaState();

LopenLibs();

Systemoutprintln("这里是Java程序调用Lua脚本");

// 加载脚本hellolua,并执行

LLdoFile("res/hellolua");

}

}

好了,程序写完了,当然是保存为Hellojava咯,注意,这是Java代码!这是Java代码调用了一个叫hellolua的脚本,下边是这个脚本文件的内容(你可以直接把他们复制到你的hellolua文件中):

================================================================

--基本 ***

print("您现在使用的是LUA脚本语言")

print("让我们一起来感受它的奇妙吧!\n")

--特点1,赋值

a={1,2}

b=a

print(a==b, a~=b) --输出 true, false

a={1,2}

b={1,2}

print(a==b, a~=b) --输出 false, true

--特点2,交换

a,b=1,2

a,b=b,a

print(a)

print(b)

print("连接""字符串"2^3)

print(type(2))

--while循环

i=0

print("while循环例子")

while i<5

do

print(i);

i=i+1

end

--repeat循环

i=0

print("repeat循环例子")

repeat

print(i)

i=i+1

until i>=5

--for循环

print("for循环例子")

for i=0,5,1

do

print(i)

end

T1={}

T1[1] = 10

print(T1[1])

function fun(a,b,)

print(a)

print(b)

print(arg[1])

print(arg[2])

print(arg[3])

return

end

a,b=2,3

fun(a,b,200,400,500)

========================================================

好了,上边的脚本如果你不懂什么意思也没关系,直接运行一下吧

你可以执行编译执行那个Hellojava程序就可以了,就会看到如下的输出结果:

========================================================

这里是Java程序调用Lua脚本

您现在使用的是LUA脚本语言

让我们一起来感受它的奇妙吧!

true false

false true

2

1

连接字符串8

number

while循环例子

0

1

2

3

4

repeat循环例子

0

1

2

3

4

for循环例子

0

1

2

3

4

5

10

2

3

200

400

500

==========================================================

怎样,是不是很爽呢?觉得没意思?好,在来一段脚本吧:

frame = luajavanewInstance("javaawtFrame", "Lua Java Console")

console = luajavanewInstance("javaawtTextArea")

buttons_pn = luajavanewInstance("javaawtPanel")

execute_bt = luajavanewInstance("javaawtButton", "Execute")

clear_bt = luajavanewInstance("javaawtButton", "Clear")

exit_bt = luajavanewInstance("javaawtButton", "Exit")

frame:setSize(600,300)

buttons_pn:add(execute_bt)

buttons_pn:add(clear_bt)

buttons_pn:add(exit_bt)

BorderLayout = luajavabindClass("javaawtBorderLayout")

frame:add(BorderLayoutNORTH, console)

frame:add(BorderLayoutSOUTH, buttons_pn)

frame:pack()

frame:show()

--

-- Listeners

--

execute_cb = {

actionPerformed = function(ev)

print("execute")

pcall(loadstring(console:getText()))

end

}

jproxy = luajavacreateProxy("javaawteventActionListener",execute_cb)

execute_bt:addActionListener(jproxy)

clear_cb = {actionPerformed= function (ev)

print("clear");

console:setText("");

end

}

jproxy = luajavacreateProxy("javaawteventActionListener" ,clear_cb)

clear_bt:addActionListener(jproxy)

exit_cb = { actionPerformed=function (ev)

print("exit")

frame:setVisible(false)

frame:dispose()

end

}

jproxyb = luajavacreateProxy("javaawteventActionListener" ,exit_cb)

exit_bt:addActionListener(jproxyb)

close_cb = { }

function close_cbwindowClosing(ev)

print("close")

frame:setVisible(false)

frame:dispose()

end

function close_cbwindowActivated(ev)

print("act")

end

jproxy = luajavacreateProxy("javaawteventWindowListener", close_cb)

frame:addWindowListener(jproxy)

这段脚本运行后你将会非常想进一步了解LUA的奥妙,至于什么我就不说了,你们自己运行看看吧。。。哈哈,就写到这里了,我去上下WC。。。。

Lua是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。

Lua也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。

Lua以一个用CleanC写成的库形式提供。(所谓CleanC,指的ANSIC和C++ *** 通的一个子集)。

LUA脚本编程器主要特点

1、可扩展性。Lua的扩展性非常卓越,以至于很多人把Lua用作搭建领域语言的工具。Lua被设计为易于扩展的,可以通过Lua代码或者C代码扩展,Lua的很多功能都是通过外部库来扩展的。Lua很容易与C/C++、Java、Fortran、Smalltalk、Ada,以及其他语言接口。

2、简单。Lua本身简单,小巧;内容少但功能强大,这使得Lua易于学习,很容易实现一些小的应用。他的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。