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

Defold 游戏开发笔记 05

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

    趁着周末有点时间,为游戏的路线编辑器加了不少新东西。

    首先是加了敌人在移动时,会面对着所移动的方向,本来我以为用 go.animate(go.get_id(), "rotation"...) 就可以,谁知道 go.animate 在处理旋转角度时会引起不正常的缩放效果,因为它所用的变量是 quarternion,而不是一个简单的角度,估计go.animate 是用了vmath.lerp() 来处理数值的变化,如果想正确的处理quarternion 是要用 vmath.slerp 的。后来在官方论坛找到有人遇到相同问题并想到的解决方法,几番折腾后才终于搞好。

    更重要的是,今天加入了敌人可以沿着曲线移动的功能! 终于不用只是直来直往的那么单调。

    -- Catmull-Rom Splines

    local function getPointOnCurve(p0, p1, p2, p3, target, t)

    local t2 = t * t

    local t3 = t2 * t

    target.x = 0.5*((2.0*p1.x)+(-p0.x+p2.x)*t+(2.0*p0.x-5.0*p1.x+4*p2.x-p3.x)*t2+(-p0.x+3.0*p1.x-3.0*p2.x+p3.x)*t3)

    target.y = 0.5*((2.0*p1.y)+(-p0.y+p2.y)*t+(2.0*p0.y-5.0*p1.y+4*p2.y-p3.y)*t2+(-p0.y+3.0*p1.y-3.0*p2.y+p3.y)*t3)

    end

    本来的直线模拟曲线 新的曲线路径

    我选用的曲线计算公式是 Catmull-Rom Splines,这个公式的原作者是 Edwin Catmull 和 Raphael Rom。Catmull 的其他重要发明还有 Texture mapping 和 Catmull–Clark subdivision surface,大家有没有发现这些可都是三维电脑图像处理的重要公式!而Catmull 是何许人呢? 他正是Pixar 创办时的技术大牛CTO,现任 Walt Disney 和 Pixar 的President!

    John Lasseter 是 Pixar 的创意灵魂,但背后若不是Catmull 技术上过硬的支持,估计 Pixar 是不可能取得现在的成就的!

    相关文章

      网友评论

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

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