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

Project1

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

[已经解决] VX中如何让NPC拥有视野?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
423 小时
注册时间
2011-6-30
帖子
497
跳转到指定楼层
1
发表于 2012-6-20 18:57:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 0newing 于 2012-11-15 17:47 编辑

玩过一个叫《萝莉的远征:幽灵行动》的游戏,想知道怎么做出这种效果,见图:

就是NPC可以有视野,看见主角行动加快,或者实行其他的动作。
请指导,谢谢……
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

2
发表于 2012-6-21 20:27:19 | 只看该作者

评分

参与人数 1星屑 +240 收起 理由
Luciffer + 240 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1384
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

3
发表于 2012-6-21 20:32:49 | 只看该作者
本帖最后由 铅笔描绘的思念 于 2012-6-21 20:35 编辑

完全可以用事件做到
先把1号变量代入主角的X坐标
先把2号变量代入主角的Y坐标
先把3号变量代入事件的X坐标
先把4号变量代入事件的Y坐标
在条件分歧 如果3号变量等于大于1号变量
  则 5号 变量代入  脚本 $game_variables[3]- $game_variables[1]
否则 5号 变量代入  脚本 $game_variables[1]- $game_variables[3]
结束

条件分歧 如果4号变量等于大于2号变量
  则 6号 变量代入  脚本 $game_variables[4]- $game_variables[2]
否则 6号 变量代入  脚本 $game_variables[2]- $game_variables[4]
结束

再条件分歧 如果 5号 变量 小于等于  2 时 (2的话那么事件的X轴视野就是2)
   条件分歧 如果 6号 变量 小于等于  2 时 (2的话那么事件的Y轴视野就是2)
  #这里就是实现的效果。。显示心情啊什么的。。。
  #如果要追踪主角的话那应该要打开独立开关A啊什么的。。。
  #设置事件二 条件是独立开关A打开  移动类型是接近 触发条件是与事件接触  在战斗啊什么的。。。
  #还要 条件分歧
  #当变量5大于2且变量6大于2时  独立开关A关闭  
结束
结束




附上脚本版
RUBY 代码复制
  1. #==============================================================================
  2. #-------------------------怪物追跡-------------------------------------------------------
  3.  
  4. #------------------[url]http://blog.sina.com.cn/rpgs---------------------------------------[/url]
  5.  
  6. #使用方法,在事件的名称上加enemy
  7. #在运动规则 类型——随机
  8. #            速度——自己选(别太快,别高过反应后的速度)
  9. #            频率——最高
  10. #与事件接触
  11. #然后在内容加个战斗就OK了
  12. #不知道怎么用的可以跟我拿范例
  13. #animation_id =怪物反应动画 57,82行
  14. #move_speed =怪物反应后的速度 1为最低,5为最高
  15. #名字可以自己改在53,54行。
  16. #============================================================================
  17. # ■ Game_Character
  18. #==============================================================================
  19. class Game_Character
  20.   #--------------------------------------------------------------------------
  21.   # ● 更新
  22.   #--------------------------------------------------------------------------
  23.   alias update_n03 update
  24.   def update
  25.     update_n03
  26.     seek_player
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ●用追跡判定
  30.   #--------------------------------------------------------------------------
  31.   def distance_player
  32.     return false if (@x - $game_player.x).abs > 3
  33.     return false if (@y - $game_player.y).abs > 3
  34.     return true
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ●用追跡判定
  38.   #--------------------------------------------------------------------------
  39.   def distance_player2
  40.     return true if (@y - $game_player.y) == 0
  41.     return false
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 用追跡判定
  45.   #--------------------------------------------------------------------------
  46.   def sight_out
  47.     return false if (@x - $game_player.x).abs < 5
  48.     return false if (@y - $game_player.y).abs < 5
  49.     return true
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ● 用追跡判定
  53.   #--------------------------------------------------------------------------
  54.   def seek_player
  55.     return if @event == nil
  56.     return special_seek if @event.name == "enemy2"
  57.     return if @event.name != "enemy"
  58.     return if @transparent
  59.     if !@seeking && distance_player
  60.       @animation_id = 93
  61.       @remain = [@move_type, @move_speed]
  62.       @seeking = true
  63.       @move_type = 2
  64.       @move_speed = 3
  65.     elsif @seeking && sight_out
  66.       @seeking = false
  67.       if @remain != nil
  68.         @move_type = @remain[0]
  69.         @move_speed = @remain[1]
  70.       end
  71.     end
  72.   end
  73.   #--------------------------------------------------------------------------
  74.   # ● 特殊追跡
  75.   #--------------------------------------------------------------------------
  76.   def special_seek
  77.     if !@seeking && distance_player2
  78.       @animation_id = 93
  79.       @remain = [@move_type, @move_speed]
  80.       @seeking = true
  81.       @move_type = 2
  82.       @move_speed = 4
  83.     end
  84.   end
  85.  
  86. end

评分

参与人数 1梦石 +1 收起 理由
Luciffer + 1 翻到一个老帖子啊

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
423 小时
注册时间
2011-6-30
帖子
497
4
 楼主| 发表于 2012-6-21 20:43:53 | 只看该作者
铅笔描绘的思念 发表于 2012-6-21 20:32
完全可以用事件做到
先把1号变量代入主角的X坐标
先把2号变量代入主角的Y坐标

还是贴个范例吧,我不太明白{:2_257:}
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
423 小时
注册时间
2011-6-30
帖子
497
5
 楼主| 发表于 2012-6-21 20:47:26 | 只看该作者
protosssonny 发表于 2012-6-21 20:27

第二和第三页写什么啊?
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

6
发表于 2012-6-21 20:52:17 | 只看该作者
本帖最后由 protosssonny 于 2012-6-21 20:53 编辑
0newing 发表于 2012-6-21 20:47
第二和第三页写什么啊?


第2页就写敌人的反应:执行条件为“独立开关A为ON”,移动类型为“接近”,事件执行条件为“与主角接触”,然后就是战斗什么的,自己设置即可,战斗结束后,独立开关B为ON。
第3页执行条件为“独立开关B为ON”,事件页留空白。表明战斗结束后,NPC消失。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
423 小时
注册时间
2011-6-30
帖子
497
7
 楼主| 发表于 2012-6-21 21:19:41 | 只看该作者
protosssonny 发表于 2012-6-21 20:52
第2页就写敌人的反应:执行条件为“独立开关A为ON”,移动类型为“接近”,事件执行条件为“与主角接触” ...

追到看不见的时候还要恢复到原来的事件页,这一点没有似乎考虑到吧?
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

8
发表于 2012-6-21 21:30:06 | 只看该作者
0newing 发表于 2012-6-21 21:19
追到看不见的时候还要恢复到原来的事件页,这一点没有似乎考虑到吧?

那你第2页不是加一个并行处理,像第一页那样设置坐标,大于多少时“独立开关A OFF”就可以了。
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
423 小时
注册时间
2011-6-30
帖子
497
9
 楼主| 发表于 2012-6-21 21:39:48 | 只看该作者
protosssonny 发表于 2012-6-21 21:30
那你第2页不是加一个并行处理,像第一页那样设置坐标,大于多少时“独立开关A OFF”就可以了。 ...

问题是同时,追到了还要执行事件的啊。这两样要兼有

点评

我最后提示一点,“接触”也可以理解为两者坐标之差为0。要是还解决不了,那么只能说明你不愿思考了。  发表于 2012-6-22 09:51
我认为我已经说得很清楚了,包括你现在这个问题也已经解决了。看不懂就是你的问题了。  发表于 2012-6-22 09:44
点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
423 小时
注册时间
2011-6-30
帖子
497
10
 楼主| 发表于 2012-11-14 23:10:01 | 只看该作者
本帖最后由 0newing 于 2012-11-14 23:16 编辑

到了我完成了,结帖~~    发上来给大家看看吧,差点就忘了,发的晚了点,见谅,见谅~~
抓人的话,事件与角色的坐标不会相等(除非穿透 = on)
要同时显示心情,还要判断追逐过程是否被逃脱,以及追上时执行事件,引用一个公共事件应该能完成吧?
感谢铅笔描绘的思念提供的脚本,加上了显示心情(画蛇添足)……

Project2.zip

360.7 KB, 下载次数: 87

点评

挖坟了,喵!新人注意看版规呀,喵!  发表于 2012-11-15 14:11

评分

参与人数 1星屑 -10 收起 理由
Luciffer -10 自己的帖子也不好挖坟哦~

查看全部评分

点这里给我发邮件
有事欢迎给我发邮件哟~~
不出意外的话都会回复的哟~~~
邮箱:[email protected]
个人主页:curatorjin.github.io
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 21:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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