前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Love2D 开发游戏

使用 Love2D 开发游戏

作者头像
siri
发布2022-11-18 14:19:05
1.4K0
发布2022-11-18 14:19:05
举报
文章被收录于专栏:siri的开发之路

Love2D 笔记

Love2D 简介


Love2D 是一款让开发者可以使用Lua语言进行开发的 2D游戏框架免费开源。其官网上有详细的介绍与手册,但需要访问国外网站且为全英文。 Love2D 国外的开发者社区比较活跃,但国内的资料就比较少了,可能会有语言障碍。但Lua语言本身的简洁性加上框架的轻量级,英文的社区和手册其实也很好理解。

PICO-8、TIC-80 和 Love2D 一样,都是适合用于2D小游戏的开发工具,三者的共同点是易于上手、适合需要快速开发游戏原型的场景。三者比较而言,开发者社区PICO-8最活跃,TIC-80 和 Love2D 次之;成本而言,PICO-8需要15美金进行购买(不是那么严格);从作品来看,PICO-8 有著名的 蔚蓝Celeste ,但其他两者也有很多有趣的小游戏;从开发角度而言,PICO-8 虽有画面限制,但图形化界面完备,能更快上手,TIC-80 和 Love2D 则更自由,但没有提供图形化用户界面。

这里只提到这三种工具是因为作者要在Gameshell平台上进行游戏开发 (GameJam ),必须三选一,不代表无法用其他工具开发2D游戏,开发者可以根据需要自行选择。

Love2D 安装与运行


  1. 安装和运行 以 macOS 为例,首先在官网 下载官方提供的对应不同系统的 zip 文件 (支持 Windows/Linux/macOS),解压后得到一个 love.app 文件。

在当前目录下输入 love 命令或者直接点击打开文件,出现如下页面即安装成功。

对于macOS,可以通过设置在终端全目录下使用love命令。 先将刚刚解压得到的 love.app 先拖入 Application 目录,然后编辑 ~/.bash_profile,添加如下代码,保存后执行 source ~/.bash_profile 即可。更详细的操作步骤在这里。 alias love="/Applications/love.app/Contents/MacOS/love"

  1. 运行、保存和发布 使用 Love2D 开发的游戏应该满足如下的目录结构,main.lua 和 conf.lua 是必须的,其他的文件目录可自行定义。其中 main.lua 是游戏的入口,而 conf.lua 用于配置窗口大小等信息。 在控制台中可以直接切换到项目路径下,使用 love . 运行,也可以切换到上级目录,输入 love project_name 运行。

如果需要在其他机器上运行和测试,需要先在对应的机器上按照上述步骤安装Love2D。然后将整个文件夹打包为压缩文件(可将后缀修改为.love),在其他机器上使用同样的方式运行。 : 打包后若在新机器上无法正常运行,可能是打包时目录层级不对,main.lua 一定要在第一层目录下。

使用Love2D开发游戏


Love2D在国外的社区比较活跃,但国内的社区并不多,下面先列举一些想要了解或者使用Love2D进行开发的开发者可以参考的资料:

  • 教程:
    • Love2D的安装以及示例程序,中文版本,官网虽然也有但连不上的同学可以看这个。
    • sheepolution这个教程虽然是英文的,但很流畅,过起来非常简单,用于熟悉API很有效。
    • 一个经典的贪吃蛇例子,项目结构简单清晰,可以学习到很多绘图函数以及游戏流程控制,适合入门。
    • 半山无极 这个教程是中文教程里比较经典的了,后来作者又用Love2D复刻了金庸群侠传,适合作为中文手册参考。
    • Alexar 的教程也很不错,有几个不同类型的小游戏的实现过程,而且介绍了游戏的整体框架和实现步骤,可以作为进阶教程。
  • 其他资料:
    • 官方论坛
    • bitbucket仓库
    • redit Love2D频道 (有关于Love2D的问题讨论以及介绍)
    • 简单的小游戏示例代码 (不知道从何下手开始第一个游戏的同学可以看这里)
    • itch 上的 Love2D 频道,有许多国内外玩家开发的小游戏。( 悄悄的说,如果想要开发比较复杂的游戏,比如射击类、平台跳跃、动作类,可以下载一些游戏下来参考大佬的游戏架构)
  • 第三方库: Love2D 本身没有提供复杂的接口,但有许多第三方库可以使用,能让开发者更快的从其他语言过度到 Lua,下面介绍几个常用的库。
    • middleclass,一个简单的让开发者可以使用面向对象方法进行 Lua 开发的库。
    • anim8,方便开发者控制素材切割、动画播放等。
    • bump ,实现物体的碰撞。
    • hump,包括几个常见的库,比如计时器 timer、场景控制 gamestate、镜头控制 camera 等等。

作者使用Love2D进行开发主要是因为参加GameJam,这里给看到最后的小伙伴偷偷放一个机核的链接吧~ 如果之后有测试版本或者策划允许把 love2d 的源码放出来的话,也会附上链接。


本文为博主原创,转载请注明出处

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Love2D 笔记
  • Love2D 简介
  • Love2D 安装与运行
  • 使用Love2D开发游戏
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档