美文网首页电竞·游戏程序员
Defold 游戏开发笔记 04

Defold 游戏开发笔记 04

作者: 一個迷途小碼農 | 来源:发表于2018-01-17 21:10 被阅读0次
Defold

这两天加上了储存和载入功能,似乎可以开始利用这编辑器设定敌人的移动路线了。

一开始我用了sys.save/sys.load 来进行有关的操作:

local path = {}

。。。

local success = sys.save(sys.get_save_file("BoxShooter", "enemy_path"), path)

。。。

local path = sys.load(sys.get_save_file("BoxShooter", "enemy_path"))

这两个系统功能相当好用,可以很方面地存取一个 table,但后来我发现它们是把资料存放到游戏所拥有的空间的,不知道存的档案是什么格式,也不能把档案提取出来当为资源,然后放到游戏包里拿来用,基本上只适用于存取游戏进行时的资料,比如用户的进度设定等等。

想把资料存为可以再用的档案资源,还是要用低端一点的 io 库,为了以后用起来方便,我也以 json 的格式储存有关的资料,这样子就算手动更改也可以:

local f = io.open("path.json", "r")

local str = f:read("*a")

local path = json.decode(str)

f:close()

local f = io.open("path.json", "w")

local version = 0

f:write(string.format('"version":%d,\n', version))

。。。

f:flush()

f:close()

而这里也发现了 Defold 的一个短板,系统里竟然只有 json.decode 而没有 json.encode !所以我只好用最简单的 json 结构来记录画出来的路线,在存档时自己按着 json 的格式写进去。

今天还发现一个有趣的事,一般我习惯了用 "#" 来数 table 里有多少东西,如果返回是0就代表它是空的,但原来如果 table 里的 key 没有一个是数字的活,就算里面有东西 "#" 也会返回 0 !正确测试 table 是不是空的,应该如下面这样子做:

if not next(mid_points) then

    print("It's empty")

end

测试

相关文章

  • Defold 游戏开发笔记 04

    这两天加上了储存和载入功能,似乎可以开始利用这编辑器设定敌人的移动路线了。 一开始我用了sys.save/sys....

  • Defold 游戏开发笔记 06

    经常看到有独立游戏开发者,花三五年才把一个游戏完成,我总觉得挺不可思议的,这得需要多少的坚持才能做的到啊! 然后自...

  • Defold 游戏开发笔记 03

    路线编辑器这两天进度不错,加好了一些基本的功能,可以画出路线,调整点的位置,删掉不要的点等。 除了点出路线,现在也...

  • Defold 游戏开发笔记 01

    最近老是不务正业,一会画个东西,一会玩玩音乐,而且总有漂亮的借口:做游戏需要画角色对吧?做游戏需要背景音乐对吧?至...

  • Defold 游戏开发笔记 02

    今天为游戏加了一个简单的菜单,主要用到了 Defold 的 collection proxy 功能。 一般来说我们...

  • Defold 游戏开发笔记 00

    简介 Defold 是一个以 Lua 为脚本语言的2D游戏引擎,最初是由两个游戏程序员为了打造自己心目中理想的引擎...

  • Defold 游戏开发笔记 05

    趁着周末有点时间,为游戏的路线编辑器加了不少新东西。 首先是加了敌人在移动时,会面对着所移动的方向,本来我以为用 ...

  • Defold学习笔记002

    1.拖拽(详细工程https://github.com/britzl/publicexamples/tree/ma...

  • Defold学习笔记001

    1.上下左右移动和点击 2.图集相关

  • iOS 2D游戏开发学习笔记:GameplayKit

    iOS 2D游戏开发学习笔记:GameplayKit 这是我的 iOS 2D 游戏开发学习笔记,本篇学习内容来自r...

网友评论

    本文标题:Defold 游戏开发笔记 04

    本文链接:https://www.haomeiwen.com/subject/ykvuoxtx.html