游戏地图引擎,最终幻想战术版Esk

3
我在搜索互联网,试图找出是否可以使用JavaScript构建类似最终幻想战术风格的世界地图引擎。地图和点位置很简单,但我仍然想知道如何在这些点之间创建一条不一定是直线的路径,并让精灵沿着该路径行走。
FFT地图 http://www.vintagevideogamer.net/wp-content/uploads/2012/04/world_map.jpg 有人知道这种地图风格叫什么吗?(维基百科上没有相关词条)
或者现有的类似程序有哪些例子?
我正在考虑使用Canvas或原生JS尝试实现它。

我以前做过Astar路径查找的东西,这与它完全不同。 它沿着非阻塞或线性路径行走。 我会找一个YouTube视频。 虽然非常感谢你的尝试。 它涉及Canvas,因为精灵沿地图上的路径行走。 路径显示在上面的图片中。 - Case
A*算法在带权重边的节点网络中寻找路径(如果我术语用错了,请有人纠正)。如果你按照它们的长度加权连接,它应该能够找到最佳路径。不知道为什么你的没有起作用? - Frank van Puffelen
再说一遍,这不是线性的,我不要最佳路径。 - Case
1
@FrankvanPuffelen:他不是在尝试寻路。他正在制作一个明确的路径,并尝试让精灵沿着该路径追踪。他想知道如何编码这样的路径并与之交互。 - Soup d'Campbells
在某种程度上,弗兰克是正确的,因为它需要找到从点1到点24的最短路径,但更复杂的问题是沿着非线性路径从点1走到点2。最终我想建立一个引擎,允许您“绘制”一条线路,然后系统理解遵循此路径以从A到B,然后再考虑A-> B-> C-> ...Z中的路径查找。 - Case
显示剩余4条评论
1个回答

0

你可以将这样的路径编码为一系列具有相对坐标的线段。假设你想要这样的路径:

|
\ _

每行都有10个像素。您可以将其编码为JavaScript的线段数组(带有持续时间以指示遍历该线段所需的秒数或毫秒数):

[
    {"start_x":0,"start_y":0,"stop_x":0,"stop_y":10,"duration":2},
    {"start_x":0,"start_y":10,"stop_x":10,"stop_y":20,"duration":3},
    {"start_x":10,"start_y":20,"stop_x":20,"stop_y":20,"duration":2}
]

然后,您只需使用时间估计来找到段的开始点和结束点之间的中间点。当前偏移量为:

var pct_complete = elapsed_time / line_segment.duration,
    x_diff = (line_segment.stop_x - line_segment.start_x),
    y_diff = (line_segment.stop_y - line_segment.start_y),
    render_x = line_segment.start_x + (x_diff * pct_complete),
    render_y = line_segment.start_y + (y_diff * pct_complete);

其中elapsed_time是自您开始该段时间以来的时间。正如我所提到的,使用相对坐标,然后您只需调整路径在世界中的位置和屏幕偏移量的render_x/y即可。

为了更平滑的转弯,请使用较小的线段。


我明白了。我只是希望有人知道那种运动方式的名称。我可能会使用Cal和Geometry来绘制路径。我必须想出一种创造性的方法,在JS引擎中动态地创建它们。也就是说,我要构建这个工具,让用户可以使用它来为最终用户创建地图。 - Case
我认为“固定路径地图”或“路线图”是你最好的选择,但是关于这两个术语的信息并不多。无论如何,你要求一个例子,我的例子虽然简陋但可行。 - Soup d'Campbells
http://raphaeljs.com 我发现这个网站看起来很不错,他们的曲线演示和弹跳演示看起来很有前途。 - Case
使用数学模型来创建曲线路径,这当然是一种选择,但你可能会很难让它完全按照你的意愿执行。祝好运。 - Soup d'Campbells

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接