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

Project1

 找回密码
 注册会员
搜索

如何让一个事件在指定范围内辨识其他事件?

查看数: 2049 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-7-29 00:11

正文摘要:

  如何让一个事件周围的一个矩形范围内侦测其他事件是否经过  (能设定菱形、圆形等其他形状更好) 可以在其他事件经过时打开1号开关或自用开关A、离开时关闭之类 并且可以调整设定范围的大小 &nb ...

回复

DivineCrow 发表于 2014-7-31 01:37:44
正太君 发表于 2014-7-30 13:01
重新做了一个范例...
范例里的事件名中带有【正太】二字的事件只要经过怪蜀黍身边一个范围,怪蜀黍头上就会 ...


把那种扫描方式放到脚本里

再用事件去RUN一遍  这个主意不错 ˙0˙

最重要的是还可以调整半径~ ❤

嗯 这玩意儿太棒了 感谢 ˙3˙~


话说我之前一直以为那个大叔才是怪蜀黍... 一直盯着大叔看想说怎么没效果 -3- ...呵呵
正太君 发表于 2014-7-30 14:59:16
@taroxd 版主大人,in_rectangle放在module Kernel下面,有利于在事件脚本里直接调用呢...

点评

你脚本不都写出来了么= =  发表于 2014-7-30 16:00
版主大人好厉害呢,不用下载附件就能把所有脚本分析得如此透彻,大赞一个...  发表于 2014-7-30 15:51
好的...感谢版主大人的调♂教...  发表于 2014-7-30 15:49
233说着玩而已。不过事件里太长的脚本真的应该放在 Game_Interpreter  发表于 2014-7-30 15:47
版主大人放过我吧...我投降了呢...(举白旗...  发表于 2014-7-30 15:45
正太君 发表于 2014-7-30 13:01:44
重新做了一个范例... Project1.rar (1.42 MB, 下载次数: 67)
范例里的事件名中带有【正太】二字的事件只要经过怪蜀黍身边一个范围,怪蜀黍头上就会有心的心情,而其它事件无效...
事件设置及事件脚本设置请看范例中的事件【怪蜀黍】...

图中粉色的四个框里的数据是四个参数,不必更改...绿色框里的参数是可以更改的...
默认方法名【in_square】是45度倾斜正方形区域判定,要换成端正矩形的区域判定,需要把方法名改成【in_rectangle】,同时增加一个参数...参数的意义见一下脚本中的注释...
这是必须添加在脚本编辑器里的脚本,转载请注明脚本来源哦...
RUBY 代码复制
  1. #==============================================================================
  2. # 事件周围区域判定
  3. #------------------------------------------------------------------------------
  4. # 作者:正太君(聪仔)
  5. # 请保留脚本来源...
  6. # 本脚本来自rpg.blue
  7. #==============================================================================
  8.  
  9. #==============================================================================
  10. # ■ Game_Character
  11. #==============================================================================
  12. class Game_Character < Game_CharacterBase
  13.   attr_reader   :event
  14. end
  15.  
  16. module Kernel
  17.   #--------------------------------------------------------------------------
  18.   # ● 矩形  共6个参数
  19.   #--------------------------------------------------------------------------
  20.   # x、y     :进入区域的事件x、y坐标...
  21.   # ox, oy   :区域中心的事件x、y坐标...
  22.   # a        :矩形的长边减1后的一半,可理解成长轴向的半径...
  23.   # b        :矩形的短边减1后的一半,可理解成短轴向的半径...
  24.   # 例如一个7×3的矩形,a为3,b为1;端正的正方形a、b相等...
  25.   #--------------------------------------------------------------------------
  26.   def in_rectangle(x, y, ox, oy, a, b)
  27.     (x - ox).abs <= a and (y - oy).abs <= b
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 45度倾斜的正方形(或称为LZ所谓的菱形)  共5个参数
  31.   #--------------------------------------------------------------------------
  32.   # x、y     :进入区域的事件x、y坐标...
  33.   # ox, oy   :区域中心的事件x、y坐标...
  34.   # r        : 正方形的对角线长度减1后的一半,可理解成正方形的半径...
  35.   #--------------------------------------------------------------------------
  36.   def in_square(x, y, ox, oy, r)
  37.     ((x - ox) - (y - oy)).abs <= r and ((x - ox) + (y - oy)).abs <= r
  38.   end
  39. end

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 in_rectangle 啥的不放在一个命名空间里吗.

查看全部评分

正太君 发表于 2014-7-29 22:42:30
以上只做了范例,没有补充说明,现在补充一下...

首先设置一个区域,形状随意,不局限于矩形...


关键的脚本是这样的...


下面是几个“1”的解释...
$game_switches[1]的1表示开关1随区域内是否事件开启和关闭...
i[1]这个1不用管它,统一写1,这是由Hash本身的性质决定的...
== 1这个1是表示判定区域是区域1,如果你是用区域2作判定,则要改成2...
最后是效果截图...

正太君 发表于 2014-7-29 19:34:51
有事件进入区域的话,游戏画面会变量,开关1打开,否则就关闭...
这是范例...
Project3.rar (1.42 MB, 下载次数: 84)
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-11-12 23:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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