今天使用Love引擎,测试了一下其基本的一些特性。
由于是底层封装了opengl的库进行图形显示,效率当然还是非常高的,而且lua本身的运行效率也很高,这个架构就特别时候游戏原型的开发,如何哪里运算速度跟不上时,再写成C的库供lua调用,就显得十分方便。
不过不爽的问题也很明显,这个游戏引擎的文档真的很烂,0.9版的文档不知为何删去了大半,好多都要看以前的博客才能知道大概的用法。
lua和C的交互
先提一些基本的问题,例如Lua如何和C++交互。这里有篇不错的博客写了这个问题。【Lua脚本在C++下的舞步】
其实很简单,lua开发者当然给我们预留好了API接口,不过是C风格的,我不建议用C++的lua绑定,引擎lua本身就是C系列的,C++对lua来说太重了,反而麻烦,我比较喜欢将C++实现的功能,直接封装成C函数,供游戏调用就可以了。
简单例子
好的,我们先举一个最简单的例子来展示一下这个引擎,加载一张图片到指定位置,新建一个空文件夹作为工程路径,下面创建一个main.lua
文件,注意这个文件名不能改,love引擎说他就是根据这个名字来找入口脚本的。
function love.load()
x, y, w, h = 10, 10, 20, 10;
buaa_logo = love.graphics.newImage("res/image/buaa.jpg")
end
function love.update(dt)
w = w + 0.2;
h = h + 0.2;
end
function love.draw()
love.graphics.draw(buaa_logo, x, y)
end
当然,资源是我放到工程目录下res/image
下的,love引擎会重写资源路径到当前目录下。
执行方式:
在工程目录下输入love .
即可,也可以参考官网上的打包方法
效果如下: