`

开源跨平台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


分享到:
评论

相关推荐

    love2D(一个非常不错的2D游戏引擎)

    Love2D,简称为"Love",是一款基于Lua语言的开源2D游戏引擎,以其简洁、高效和跨平台的特性受到众多独立游戏开发者和初学者的喜爱。它允许开发者通过编写Lua脚本来快速构建各种类型的游戏,无论是简单的像素艺术游戏...

    HGE1.81不错的开源2D游戏引擎

    9. **多平台支持**:作为一个跨平台的引擎,HGE可以在Windows、Linux和Mac OS等操作系统上运行,扩展了游戏的覆盖范围。 10. **开源社区**:作为开源项目,HGE拥有活跃的社区,开发者可以获取到源代码,学习和改进...

    cpp-Rubeus一个用C编写的跨平台2D游戏引擎适合初学者

    Rubeus的跨平台特性意味着开发者可以在多种操作系统上构建和运行游戏,如Windows、Linux、Mac OS等。这得益于C语言的广泛兼容性和开源库的支持,如SDL(Simple DirectMedia Layer)或SFML(Simple and Fast ...

    cpp-Torque2D一个开源跨平台C引擎构建用于2D游戏开发

    "cpp-Torque2D一个开源跨平台C引擎构建用于2D游戏开发" 这个标题揭示了我们关注的核心是名为Torque2D的游戏引擎,它使用C++语言编写,并且具有开源和跨平台的特性。这意味着开发者可以在不同的操作系统上使用这个...

    Cocos2D-X是全球知名的开源跨平台游戏引擎,易学易用.rar

    Cocos2d-x 是一款国产的开源的手机游戏开发框架,基于MIT许可证发布。引擎核心采用C++编写,提供C++、Lua、JavaScript 三种编程语言接口,跨平台支持 iOS、Android 等智能手机,Windows、Mac 等桌面操作系统,以及 ...

    Cocos2d-Java跨平台游戏引擎

    Cocos2d-Java跨平台游戏引擎 Cocos2d-Java是基于Cocos2d-X,使用Java语言来开发Cocos2d跨平台游戏的引擎,和-lua,-js的api风格相近,方便快捷,便于习惯Java的开发者开发跨平台游戏。 知识点一:Cocos2d-Java的...

    cocos2d游戏引擎.rar

    Cocos2d是一款强大的开源游戏开发框架,它以其易用性、高效性和跨平台性深受开发者喜爱。在本文中,我们将深入探讨cocos2d游戏引擎的核心概念、关键特性以及如何利用它来构建游戏。 1. **核心概念** - **Scene...

    Tristeon:免费的,开源的,跨平台的2D平台游戏引擎,旨在实现快速原型设计并减少开发时间-Game source platform

    Tristeon是一个开源游戏引擎,专为基于2D切片的游戏而构建。 它旨在提高开发效率,实现快速原型制作并减少游戏开发时间。 代码架构的设计易于理解和维护,因此修改引擎以满足您的需求不成问题。 入门 释放引擎后,...

    cpp-GamePlay开源跨平台C游戏框架引擎创建2D3D移动和桌面游戏

    GamePlay是一款开源、跨平台的C++游戏框架引擎,专为构建2D和3D移动以及桌面游戏设计。它的核心特性在于提供了一整套高效、灵活的工具和库,使得开发者能够快速地创建高质量的游戏应用。这个框架不仅适用于专业的...

    saddy-graphics-engine-2d:Saddy是基于OpenGL的开源跨平台2D图形引擎,可用于创建2D游戏。 像平台游戏或RPG

    Saddy是一个基于OpenGL的开源跨平台2D图形引擎,可用于创建简单的游戏。 有关引擎的详细信息和功能,请参见我们的 。 新闻 请注意,从1.7.0开始,Saddy将仅支持支持C ++ 14的编译器。 Saddy 16.20发布了! 19/3/...

    商业版c#2D游戏引擎(附源程序)

    C# 2D游戏引擎通常基于.NET Framework或更现代的.NET Core,利用其强大的类库和跨平台能力,能够快速构建高性能的游戏应用。 本商业版C# 2D游戏引擎可能包含以下关键组件和技术: 1. **图形渲染**:游戏引擎的核心...

    基于HTML5技术的开源Live 2D渲染引擎.zip

    利用HTML5的Live 2D渲染引擎,开发者能够创建出高性能、低延迟的2D游戏,同时保持跨平台兼容性。这在移动设备上的表现尤其出色,因为HTML5游戏可以运行在任何支持现代浏览器的设备上,无需考虑操作系统差异。 在...

    oge2d:跨平台2D游戏引擎-开源

    Open Game Engine 2D是具有完整功能和跨平台的2D游戏引擎。 它旨在帮助开发人员仅使用平面文件(例如ini和脚本文件)来创建2D游戏,以便游戏可以编写一次并可以在任何支持的平台上玩。 该引擎是用C / C ++编写的纯2D...

    开源的android游戏引擎介绍

    虽然不是专门针对Android,Cocos2d-x是一款跨平台的2D游戏引擎,支持多种语言,包括Java。它拥有强大的社区支持,丰富的教程和示例,以及全面的API文档。 8. **Defold** Defold是一款免费的实时游戏引擎,支持2D...

    angel2d, 基于OpenGL和 C 的跨平台 2D 游戏Prototype框架.zip

    angel2d, 基于OpenGL和 C 的跨平台 2D 游戏Prototype框架 天使 2D 主页:http://angel2d.com 文档: http://docs.angel2d.comAngel是基于OpenGL和 C 的跨平台 2D 游戏Prototype框架。它以轻量级的方式提供了广泛的...

    DeccanEngine:Deccan Engine是用C11编写的开源跨平台2D游戏引擎。 由SDL2提供支持

    DeccanEngine是一款基于C11标准开发的开源2D游戏引擎,它的设计目标是实现跨平台兼容性,能够在多种操作系统上运行,如Windows、Linux、macOS等。这款引擎的核心依赖于Simple DirectMedia Layer 2(SDL2),这是一个...

    cocos2d游戏引擎

    Cocos2d是一款广泛使用的开源游戏开发框架,尤其在移动端如Android和iOS平台上深受开发者喜爱。这个框架以其高效、易用...通过深入理解和运用cocos2d,你可以创造出引人入胜的2D游戏,同时享受到跨平台开发带来的便利。

Global site tag (gtag.js) - Google Analytics