V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
Unreal Engine
MyCryENGINE
Jayzer
V2EX  ›  游戏开发

如何实现《金山打字通》中“太空大战”里面子弹那种轨迹?

  •  
  •   Jayzer · 2016-06-07 13:59:21 +08:00 · 4225 次点击
    这是一个创建于 2870 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 Gamemaker 写一个游戏,游戏操作方式是敌人跟踪玩家。 目前用的是“检测玩家位置并向那里移动”,想要实现太空大战里面那种子弹摇摇摆摆飞向敌机的效果,捣鼓了很久却弄不出来,故来此请教各位前辈,谢谢!

    3 条回复    2016-06-07 14:46:38 +08:00
    Jayzer
        1
    Jayzer  
    OP
       2016-06-07 14:26:24 +08:00
    视频示例: http://www.bilibili.com/video/av3628624/
    从三分开始
    lazylax
        2
    lazylax  
       2016-06-07 14:37:15 +08:00   ❤️ 1
    scr_MoveToPointDecelerated.gml

    /// 带减速的朝鼠标移动
    var point_x = argument0
    var point_y = argument1
    var max_speed = argument2
    var min_dsts = argument3
    {
    var cur_dsts = point_distance(x,y,point_x,point_y);

    if (cur_dsts >= min_dsts)
    {
    cur_speed = max_speed;
    }
    else
    {
    cur_speed = cur_dsts/(min_dsts/max_speed);
    }

    if (cur_dsts > cur_speed)
    {
    move_towards_point(point_x,point_y,cur_speed);
    }
    else
    {
    x = point_x;
    y = point_y;
    speed = 0;
    }
    }

    以前用 gm 开发时写过一段脚本,你可以先试试“子弹飞向鼠标”这个效果,一边修改代码测试效果一边理解代码,理解后,再把脚本中鼠标改成当前正在追踪的敌人坐标就是你想要的效果了

    不过,如果你还没进阶到掌握脚本语言写游戏的程度,只是拖拽 GM 的功能块去实现效果,我觉得你可以去别处 GM 相关论坛和 QQ 群寻找一下教程
    lazylax
        3
    lazylax  
       2016-06-07 14:46:38 +08:00
    游戏中决定移动轨迹的是公式, 通过公式来计算 x 和 y 方向当前帧该移动多少值,像追踪这种移动,基本上就是计算出“当前点“到“目标点“的向量,然后把它标准化,再分别得出 x 方向和 y 方向上的位移,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1711 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:41 · PVG 00:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.