开源跨平台2D游戏引擎Love2D介绍

声明: 本博客文章原创类别的均为个人原创,版权所有。转载请注明出处:http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com


Love2D是一个开源的, 跨平台的2D游戏引擎。使用纯Lua脚本来进行游戏开发。目前支持的平台有WindowsMac OSLinux。另外在社区里,还有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模块的一个简单介绍。


下面我们来看看,如何把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


©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值