游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: yangzhengyue

【求助】2D游戏中怪物追赶主角的算法

[复制链接]

31

主题

278

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
发表于 2009-1-21 09:25:00 | 显示全部楼层

Re:【求助】2D游戏中怪物追赶主角的算法

提供一个函数,模拟当前点到目标点当前应该用什么样的速度,然后用得到的速度来更新你的位置
void CalculateVelocity(Vector2D& out, const Vector2D& CurrentPos, const Vector2D& AimPos, float Speed, float deceleration)
{
        Vector2D ToTarget = AimPos - CurrentPos;
        double dist = ToTarget.Length();
        if (dist > 0)
        {
                const double DecelerationTweaker = 0.2;

                double speed =  dist / ((double)deceleration * DecelerationTweaker);     
                     //确定没有超过你设定的速度
                speed = min(speed, Speed);

                out = ToTarget * speed / dist;
                return;
        }
        out = Vector2D(0,0);
}

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-1-23 10:40:00 | 显示全部楼层

Re: 【求助】2D游戏中怪物追赶主角的算法

三楼的还是去看看游戏物理学吧,其中有专门讲解追逐的算法,追逐的视角等等的算法,不要以为判断两个人的距离这么简单就行的,这样你做的游戏永远是门外级的。。。。。。

0

主题

4

帖子

10

积分

新手上路

Rank: 1

积分
10
QQ
发表于 2009-2-8 10:46:00 | 显示全部楼层

Re:【求助】2D游戏中怪物追赶主角的算法

if time_d==1       \\间隔一秒
   moveto(x,y);    \\朝目标移动

LZ应该要的追逐不是拦截
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 09:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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