Defold 游戏开发笔记 03

Defold

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


編輯器畫面

除了点出路线,现在也可以按下 [play] 来看一下怪物在顺着路线移动时到底是不是顺畅,其实最理想就是可以有个曲线模式,用曲线作为路线,但 go.animate 并没有这个支持,暂时只好多放几个点来模拟。


移動測試

在测试路线时,要用 factory.create 建立一个敌人的物件,在建立时本是可以顺手设立一些新物件的属性,但发现在这个情况下是不能用 table 的,以下这样子就会出错:

local mid_points = {}

local pos = vmath.vector3(0, 0, 0)

local f = "#factory_enemy"

local id = factory.create(f, pos, nil, { path = mid_points })    -- 這里會出錯

而解决方法,是建立好物件后,再用 msg.post 把相关的 table 传给新物件,新物件的脚本在自己的 on_message 里接收就可以:

local id = factory.create(f, pos, nil)

msg.post(id, "setup", { path = mid_points })

本来每段"段落"之间移动的时间是固定的,测试发现这样子移动速度就变得不均匀了,改为用两个点的距离和一个速度的设定来算回所需的时间就行了:

local movement =  movements[move_pointer]

self.target_pos.x = movement[1]

self.target_pos.y = movement[2]

local pos = go.get_position()

local distance = vmath.length(pos - self.target_pos)

local move_time = distance/movement[3]

因工作需要一直是用C/C++,开始用 lua 后被深深被它的自由奔放所感动,变量不用提前声明,想它是什么类型变量就是什么,但那天就被正正被这自由所累,花了不少时间除虫:

local buttonPlay = gui.get_node("play")

if gui.pick_node(buttonPLay, action.x, action.y) then

    msg.post("editor_controller#editor", "play")

end

加了 [play] 按钮后,相关事件一直没有被触发,后来查了半天,才发现有个字母的大小写搞错了!"buttonPLay"应该是"buttonPlay "!还好吧,知道了以后就可以小心点了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,766评论 0 33
  • 目录 “诸位仙家既然敢伤了他,那便是想好了后果的吧。”她手持玄红战戟,迎风而立,脸上染了血迹,褐色的瞳孔里泛着让人...
    崖柏今天早起了阅读 199评论 2 2
  • 红颜·客 仙乡何处? 海至深时,不见凡尘路。 日沉红消影, 潮起芳难寻。 世上名利客,扰扰,人间。 一曲邀天下,转...
    善木阅读 162评论 0 0
  • 生命已经变得残破, 一切言语都显得罗嗦。 苦难把命运吹的零落, 黑暗令我不知所措。 当思想背上沉重的枷锁, 还能教...
    半月仙河北廊坊阅读 153评论 1 7
  • 一个大浪卷起,狠狠拍在崖壁上,溅起的飞沫落在我的脸上,还有舌尖。咸到一股刺痛。 我为什么会站在这陡峭的悬崖之上?我...
    0be7333ea3e5阅读 327评论 0 0