游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2486|回复: 8

[讨论] 急!大神们求教个PVP 单挑AI的线路

[复制链接]

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2013-3-23 10:22:48 | 显示全部楼层 |阅读模式

AI线路

AI线路

如图:我希望AI在玩家的直线距离S1范围内,如果垂直距离超过一个值X,AI会后撤出S1范围外,再斜的直线追踪玩家。这样做目的想让AI走位生动点,实际点。线路如图,请问这个方案有问题吗,没有的话怎么细化规则,有问题的话请指教。

0

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2013-3-23 10:25:12 | 显示全部楼层
这个不太懂啊,祝楼主早上解决吧

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2013-3-23 10:44:18 | 显示全部楼层
根本就是 发表于 2013-3-23 10:25
这个不太懂啊,祝楼主早上解决吧

你有认识厉害点的人吗。帮忙叫来解答

13

主题

405

帖子

1034

积分

金牌会员

Rank: 6Rank: 6

积分
1034
发表于 2013-3-23 11:18:53 | 显示全部楼层
你们游戏有面向这个属性么

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2013-3-23 11:23:10 | 显示全部楼层
弹你小雀雀 发表于 2013-3-23 11:18
你们游戏有面向这个属性么

有!

13

主题

405

帖子

1034

积分

金牌会员

Rank: 6Rank: 6

积分
1034
发表于 2013-3-23 12:26:14 | 显示全部楼层
alsan 发表于 2013-3-23 11:23
有!

单单移动的话,逻辑没有什么太大问题。
(注意直线移动是点到点的移动,你的是点到点到点的移动,中间多若干步骤,需考虑执行到中途步骤时,触发了别的条件时,你怎么处理,是继续还是打断)

感受上的话,每次都按照一种模式靠近,和直接接近有区别么?
我移动到某个距离,怪物判断然后做反馈向我移动
反馈移动的方式越多,我就越觉得它生动
跟移动路线本身反而没有关系(如果路线较丑,你还会被笑)

如果你只是想让怪物走的生动点
让程序特别做一个怪物寻路靠近的逻辑,然后以后想要用的怪物都调用这个移动接口好了
在点靠近点的路线选择上随机出现若干个曲折的路线
随机出需要几个拐点,
随机出各拐点的角度(这个根据需求自定义吧,不要往回走就好,如果要做出抛物的感觉,特别跟程序说吧)
确定拐点的位置

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2013-3-23 13:37:45 | 显示全部楼层
嗯 让程序做个怪物寻路靠近的逻辑。

98

主题

784

帖子

4495

积分

版主

Rank: 7Rank: 7Rank: 7

积分
4495
发表于 2013-3-23 23:28:47 | 显示全部楼层
这个问题比上次的清晰,你只是不知道如何表达给程序,或者说程序不知道怎么去做,很简单,你需要告诉他:
1,你的AI数据构架中,会需要有以下2样新增的东西:
int nextKeepDistance; //用于计算到下一次要走向S1距离之外的帧数。
int KeepDistanceX;     //这个是AI需要保持的距离也就是你的S1。
2,这个是常识,希望你记住:那就是在设计这种AI的时候,X管X思考,Y管Y思考,X的移动逻辑与Y的移动逻辑相对独立,两个逻辑产生出坐标(X,Y)。
3,执行的过程很简单,每一贞AI要执行的逻辑:
if (没有更优先的X目标点要走 && nextKeepDistance-- < 0)
{
目标点的X和KeepDistanceX和角色(执行AI的这个单位)的面相产生关系,获得新的目标点X;
nextKeepDistance设定为一个你认为合适的数值,也就是多少贞以后再次执行拉开距离,这个可以用公式也可以读取外部数据,看你们合作的方式了;
}

值得注意的是,你的nextKeepDistance如果设定的太小,很可能导致AI变得很愚蠢,总是躲着玩家走,所以我个人的建议还是你最好设计一个数学公式去取得这个值,可以加入随机数,但我个人很反对,我认为在没有直接增加游戏性的情况下使用随机数是策划不负责的表现之一。

点评

人家问的是如何让怪物向玩家靠近的时候不会总是“愚蠢”的直线靠近,而使得靠近路线显得是有“思考”过的,你的方案是怪物和玩家如何保持距离  发表于 2013-3-24 00:06

4

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
 楼主| 发表于 2013-3-24 17:48:59 | 显示全部楼层
猴与花果山 发表于 2013-3-23 23:28
这个问题比上次的清晰,你只是不知道如何表达给程序,或者说程序不知道怎么去做,很简单,你需要告诉他:
1 ...

程序很有才,已经实现了。走位还行,效果不错。待细化了。感谢两位
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-27 22:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表