Love2D 笔记

  • Love2D 简介
  • Love2D 安装与运行
  • 使用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"

  2. 运行、保存和发布
    使用 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 的源码放出来的话,也会附上链接。


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

使用 Love2D 开发游戏相关推荐

  1. 如何用虚幻引擎4和C++开发游戏?斯坦福相关课程上线

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如何用虚幻引擎4开发游戏? 现在,斯坦福的相关课程上线啦. 代码.视频.PPT.课后作业一应俱全,还会教你如何在游戏中设置基于行为树的AI, ...

  2. python能做游戏吗-python能开发游戏吗

    python可以写游戏,但不适合.下面我们来分析一下具体原因. 用锤子能造汽车吗? 谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的.但一般来说,还是用工业机器人更合适对吗? 比较大型的, ...

  3. c语言开发游戏趋势,都9012年了,为何我还坚持用C语言开发游戏

    我最近所有个人项目游戏都是用"纯" C语言开发.解释为什么要这样做可能很有趣. 预警:一大堆枯燥的编程语言观点将要出现. 我需要什么样一种编程语言 有些条件是不可协商的. 首先,语 ...

  4. 【C语言探索之旅】第三部分第三课:SDL开发游戏之显示图像

    内容简介 1.第三部分第三课: SDL开发游戏之显示图像 2.第三部分第四课预告: SDL开发游戏之事件处理 第三部分第三课:SDL开发游戏之显示图像 上一课中,我们学习了如何加载SDL库(SDL_I ...

  5. 游戏里的角色都什么格式图片_二十年前是怎样开发游戏的?

    知乎上有人问:"贴吧都是十五六岁就用引擎写游戏的天才,大家怎么看?",感觉现在做游戏真实一件幸福的事情呀,不尽想起当年开发游戏的各种艰辛. 现在做游戏很简单,大把代码给你参考,大把 ...

  6. 软件项目开发 学校自行开发_自行开发游戏

    软件项目开发 学校自行开发 Making a game is not easy. Quite the contrary; it's an incredibly difficult and daunti ...

  7. 虚幻引擎 js开发游戏_通过编码3游戏学习虚幻引擎4-5小时免费游戏开发视频课程

    虚幻引擎 js开发游戏 One of the most widely used game engines is Unreal Engine by Epic Games. On the freeCode ...

  8. 使用Visual Studio开发游戏——微软宣布与Unity、Unreal Engine和Cocos展开全新合作

    从Xbox.Windows,到iOS.安卓,再到浏览器平台,每天都有数以亿计的用户在这些设备上运行由游戏开发者设计和开发的游戏.多年以来,我们很荣幸的看到,Visual Studio一直是游戏行业最流 ...

  9. 游戏开发物语方案点数分配_直播开发平台解决方案——如何开发游戏直播平台...

    在大量资本投入的前提下,游戏直播平台成为当下直播行业最具发展力的领域,斗鱼和虎牙完成上市,双巨头格局已然形成.既然市场发展潜力巨大,那么肯定有人跃跃欲试.那么,如何开发游戏直播平台呢? 游戏直播平台是 ...

  10. flutter能开发游戏吗_不用 H5,闲鱼 Flutter 如何玩转小游戏?-阿里云开发者社区...

    什么是Candy引擎? Candy 是闲鱼技术团队设计开发的一款引擎: APP嵌入式的.轻量级的.易于开发.性能稳定的互动引擎: 绘制系统高度融合Flutter体系,游戏场景和Flutter UI支持 ...

最新文章

  1. javascript,css延迟加载器
  2. 【算法学习笔记】19.算法设计初步 最大子列和问题的几种方法
  3. Visitor(访问者)模式在SAP CDS view测试框架中的灵活运用
  4. nginx怎么用_后端服务老是重启,前端该如何拯救自己?nginx的妙用
  5. 设计模式 - 策略模式Strategy
  6. CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转
  7. 养生之道之一_吃喝相关[转载]
  8. (Java)idea连接数据库
  9. 新手CrossApp 之CAbutton小结
  10. 《具体数学》第一章学习总结
  11. ios微信浏览器扫码进入页面加载完成失效
  12. @TableLogic注解
  13. java 崩溃监控,求大神分析drwtsn32 监控javaee程序崩溃日记
  14. 数学笔记28——不定式和洛必达法则
  15. JAVA简易贪吃蛇游戏实现
  16. 缺少/丢失dll的解决方法汇总
  17. 电影步入下半年血拼关键期,这会是猫眼们持续破局的命门吗?
  18. android 蒙版图片带拖动_snapseed安卓蒙版(snapseed拼接两张图片)V1.6.8 手机版
  19. 【干货】阿里资深无线技术专家孙兵谈闲鱼社区技术架构演进
  20. 电脑麦克风输入没声音,如何解决

热门文章

  1. Jvm面试题及答案(2021年Jvm面试题大全带答案)
  2. PostgreSQL数据库——Pigsty grafana Ansible
  3. PHP用GD库实现简单的验证码
  4. Excel怎么将两个表格数据合并为一个
  5. excel午晚加班考勤统计(excel快速计算午多少个和晚多少个)
  6. HTMl悬浮播放器XPlayer,Xplayer播放器
  7. 24节气—小雪海报、文案分享。雨凝成雪,万物冬藏。
  8. VBA dialogs 调用对话框
  9. java的第一个代码模型,简单的java类
  10. oracle -3233,ORA-3233 问题请教