Love2D是一个开源的, 跨平台的2D游戏引擎。使用纯Lua脚本来进行游戏开发。目前支持的平台有Windows,Mac OS,Linux。另外在社区里,还有Love2D-android版本,而且也有进军IOS的计划。
这个游戏引擎在国内听说或者是使用的人可能不是很多,但是在国外还是有很大一部分的使用人群的。
官方网站为: http://www.love2d.org/
目前的最新版本为 0.8.0。
我们从官网下载Windows平台的,然后解压缩。
我们可以看到如下几个文件。
双击love.exe。
额,这个。可以当成是默认画面吧。
有的人看到这里,就会觉得摸不着头脑。不知道该如何进行开发或者运行。
其实很简单,我们新建一个文件夹:FirstGame。然后在文件夹里新建一个lua脚本:main.lua。 注意:这里一定要是main.lua。因为Love2D引擎默认开始执行的脚本就是main.lua。
我们来写一个Hello World。
function love.draw() love.graphics.print("Hello World", 300, 300) end
这就是一个简单的HelloWorld脚本。love.graphics.print是绘制文本的函数。我们在(300,300)坐标绘制了一个"Hello World"字符串。
然后我们把FirstGame文件夹,拖到Love.exe上。就可以看到执行后的效果了。
是不是很简单?
当然,用脚本语言的优点就是不用重复编译,可以节省大量的时间。不过也有缺点,由于Love2D没有官方的IDE,所以我们不可能有代码提示的。(- - !)
下面我们来看看Love2D的SDK的结构。
我们可以看到这些都是Love2D里Lua的模块Module。模块的功能都可以从名字看到,有音频,事件,文件系统,字体,图形绘制,操纵杆,键盘鼠标事件,物理部分等。还有封装的线程等功能。
大家可以看到,虽然是用的Lua语言,但是模块的功能还是很强大的。对于开发2D游戏来说,是绰绰有余了。
Love2D里有一些默认的函数来执行。
love.draw 每一帧绘制都会执行。
love.focus 当窗口获取焦点或者失去焦点时执行。
love.joystickpressed 当操作杆按下按键时执行。
love.joystickreleased 当操作杆松开按键时执行。
love.keypressed / love.keyreleased 当键盘按下按键和松开按键时执行。
love.mousepressed / love.mousereleased 当鼠标按下按键和松开按键时执行。
love.load 这个函数在每次开始游戏的时候执行一次。
love.quit 在游戏关闭时执行。
love.run 最主要的函数,包含了游戏的主循环。
love.update 每一帧执行,用来更新游戏状态。
下面我们来看看一个简单的例子,就是在屏幕绘制一个图片。
function love.load() person= love.graphics.newImage("preson.png") x = 50 y = 50 end function love.draw() love.graphics.draw(person, x, y) end
下面我们来看看,如何把Love2D的Lua脚本打包为可执行程序。
首先下载下面的工具: https://code.google.com/p/love-dist/downloads/list 。
这是一个资源打包工具,可以把你写的Lua脚本和资源打包为.love文件。
下载下来并解压。
然后把刚刚的FirstGame的文件夹放到这个的同级目录。并新建一个build.bat文件。
写入内容 lovedist FirstGame FirstGame。
可以看到如上的画面,然后再目录里,我们发现多了一个FirstGame.love文件。
然后把FirstGame.love文件放到love.exe文件同目录。
新建一个build.bat文件,并写入内容: copy /b love.exe+FirstGame.love FirstGame.exe。
双击执行。
我们可以看到,多了一个FirstGame.exe。
双击执行,就是我们刚刚的Hello World程序了。
最终我们的程序目录应该包含以下文件:
SDL.dll ,OpenAL32.dll ,DevIL.dll ,FirstGame.exe ,license.txt。
注意,发布的任何游戏要附带license.txt。因为Love2D是LGPL开源协议的,并且还用到了其他的LGPL开源协议的库。
这样我们就可以用Love2D开发并发布自己的游戏了。
转载请注明出处:http://blog.csdn.net/ml3947