Lua代码开发

Lua是一种轻量小巧的脚本语言, 这边我们不会对Lua进行详细的介绍了. 引擎是支持Lua语言开发的, 并且MagicCube编辑器也支持编辑Lua脚本.

1. MagicCube中Lua脚本编辑

当我们创建好Lua项目之后, 会在项目根目录下生成app.lua脚本, 我们一般将app.lua作为项目的入口脚本.
在Asset/Scripts文件夹下生成了项目名 + App.lua文件, app.lua中一般会require这个脚本. 这个脚本一般会编辑引擎的委托.

    ---创建一个Delegate
    local App = {}

    ---Delegate需要包含以下几个方法
    function App.onStart()
        ---游戏启动方法
    end

    function App.onResume()
        ---游戏继续时调用 从后台切回游戏时
    end

    function App.onPause()
        ---游戏暂停时调用 当游戏进入后台时
    end

    function App.onEnd()
        ---游戏结束时调用
    end

    ---给XEngine设置Delegate
    xe.AppDeleggate = App

在Asset/Scripts文件夹下还会生成一个"项目名 + Scene.lua"的脚本, 这个脚本为场景脚本.

    ---创建一个Scene继承于xe.Scene
    local ManualSampleScene = xe:Class(xe.Scene, {
    tag = "ManualSampleScene"
})

---Scene可以重写以下几个方法
function ManualSampleScene:GameStart()
    ---在游戏启动的时候调用
end

function ManualSampleScene:onStart()
    ---在场景加载后调用
    print("ManualSampleScene:onStart")
end

function ManualSampleScene:onEnd()
    ---在场景销毁时调用
end

function ManualSampleScene:onTick(fDelta)
    ---场景加载后每帧调用
end

function ManualSampleScene:onResume()
    ---场景继续运行时调用
end

function ManualSampleScene:onPause(...)
    ---场景暂停时调用
end

这时我们看看游戏运行的效果 这里我们看到了在onStart方法中print的内容, 查看输出内容的详细介绍可以参考查看日志 alt

但是现在游戏里是什么都看不到的, 那是因为我们没有加载场景资源, 我们从编辑器中打开ManualSampleScene.lua脚本, 然后开始编辑, 这边我们加载了一个场景资源. alt

2. 在其他编辑器中编辑

在对象越来越多, 类越来越多的时候, 我们希望可以有代码补全功能, 这时我们需要引入第三方插件"emmyLua", 这个插件在多个编辑器下都支持.
EmmyLua的使用规范可以参考EmmyLua

2.1. 在VSCode中编辑

  1. 安装EmmyLua插件: alt

  2. 引入XEngineLuaApi: alt

    各个版本的XEngineLuaApi开发提示文档下载链接如下:

  3. 编辑代码: alt

2.2. 在AndroidStudio/IntelliJ Idea编辑

因为AndroidStudio和IntelliJ操作很相似, 所以这里一起介绍

  1. 安装EmmyLua插件: alt AndroidStudio安装EmmyLua插件后需要重启IDE

  2. 引入XEngineLuaApi:
    有两种方法:

    1. 第一种和VSCode一样, 将XEngineLuaApi工程文件复制到项目文件夹下.
    2. 第二种在Project Structure中添加一个Module
      alt
  3. 编辑代码: alt

@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2021-04-12 18:28:14

results matching ""

    No results matching ""