设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2034|回复: 13
打印 上一主题 下一主题

怎样让一个NPC跟随另一个随机移动的NPC走呢?

 关闭 [复制链接]
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-29
帖子
49
跳转到指定楼层
1
发表于 2009-5-30 00:50:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-18
帖子
307
2
发表于 2009-5-30 01:24:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

3
发表于 2009-5-30 01:41:16 | 只看该作者
class Game_Character
  def move_type_toward_character(event_id)
    # 求得与主角坐标的差
    sx = @x - $game_map.events[event_id].x
    sy = @y - $game_map.events[event_id].y
    # 求得差的绝对值
    abs_sx = sx > 0 ? sx : -sx
    abs_sy = sy > 0 ? sy : -sy
    # 如果纵横共计离开 20 个元件
    if sx + sy >= 20
      # 随机
      move_random
      return
    end
    # 随机 0~5 的分支
    case rand(6) #——————————————————————可以更改
    when 0..3  # 接近主角
      move_toward_character(event_id)
    when 4  # 随机
      move_random
    when 5  # 前进一步
      move_forward
    end
  end
  def move_toward_character(event_id)
    # 求得与主角的坐标差
    sx = @x - $game_map.events[event_id].x
    sy = @y - $game_map.events[event_id].y
    # 坐标相等情况下
    if sx == 0 and sy == 0
      return
    end
    # 求得差的绝对值
    abs_sx = sx.abs
    abs_sy = sy.abs
    # 横距离与纵距离相等的情况下
    if abs_sx == abs_sy
      # 随机将边数增加 1
      rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
    end
    # 横侧距离长的情况下
    if abs_sx > abs_sy
      # 左右方向优先。向主角移动
      sx > 0 ? move_left : move_right
      if not moving? and sy != 0
        sy > 0 ? move_up : move_down
      end
    # 竖侧距离长的情况下
    else
      # 上下方向优先。向主角移动
      sy > 0 ? move_up : move_down
      if not moving? and sx != 0
        sx > 0 ? move_left : move_right
      end
    end
  end
end

↓看不清楚请点击~

【移动规则】:自定义——【移动路线】——【脚本】:
move_type_toward_character(2)
(括号中的数字是 跟随事件的编号)


如果觉得跟的人整天乱走,把【case rand(6)】(你翻下就知道在哪)
改为【case rand(4)】。那么就完全跟紧。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-29
帖子
49
4
 楼主| 发表于 2009-5-30 01:53:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人


梦石
0
星屑
89
在线时间
24 小时
注册时间
2006-5-27
帖子
11425

贵宾

5
发表于 2009-5-30 02:00:04 | 只看该作者
以下引用snowball1981于2009-5-29 17:53:55的发言:
我创建事件,插入脚本,可是无法粘贴上面的脚本代码。
请问这些脚本代码放在哪里呢?还是我要亲自打上去?
粘贴前请先确定光标在右边的文本框内……
直接点击插入时,光标会在左边的脚本标题里。想要在短短的标题里粘上全部脚本,真是难为电脑了呢。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

6
发表于 2009-5-30 02:00:37 | 只看该作者

↑设置成这样,然后点击【移动路线】


↑右下角的【脚本】功能。插入move_type_toward_character(2)
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-5-29
帖子
49
7
 楼主| 发表于 2009-5-30 02:18:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

8
发表于 2009-5-30 02:45:34 | 只看该作者
以下引用snowball1981于2009-5-29 18:18:16的发言:

我没弄明白。
把脚本复制进去,然后按钮照做后,感觉怪怪的。
我的意思是:
人物 A 有固定路线 X ,人物B紧跟随人物 A 走路线 X 。
另外人物 C 有固定路线 Y ,人物 D 紧跟随人物 C 走路线 Y 。
地图上还人物 E 走固定路线 Z ,人物 F、G、H 跟随人物 E 走固定路线 Z 。

不是说要随机吗 怎么又变固定了{/fd}











你知道得太多了

回复 支持 反对

使用道具 举报

Lv3.寻梦者

小柯的徒弟

梦石
0
星屑
1535
在线时间
1157 小时
注册时间
2008-5-24
帖子
3085

贵宾

9
发表于 2009-5-30 03:45:51 | 只看该作者
以下引用snowball1981于2009-5-29 18:18:16的发言:

我没弄明白。
把脚本复制进去,然后按钮照做后,感觉怪怪的。
我的意思是:
人物 A 有固定路线 X ,人物B紧跟随人物 A 走路线 X 。
另外人物 C 有固定路线 Y ,人物 D 紧跟随人物 C 走路线 Y 。
地图上还人物 E 走固定路线 Z ,人物 F、G、H 跟随人物 E 走固定路线 Z 。

第二个图的不用模仿- -b

只保留【脚本:move_type_toward_character(2)】就可以了。

华丽的范例{/gg}
http://rpg.blue/upload_program/d/「旅」_Project3_124055125.rar
回复 支持 反对

使用道具 举报

Lv1.梦旅人

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
帖子
3693
10
发表于 2009-5-30 04:25:36 | 只看该作者
pinbi
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-14 01:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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