查看: 1928|回复: 14

有没有专门的脚本是判断事件到达地图边界的?

  [复制链接]
梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
发表于 2009-5-17 20:06:09 | 显示全部楼层 |阅读模式

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

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

×
判断某个事件是否到达地图上下或左右的边界。不用判断坐标的方法有没有?
版务信息:本贴由楼主自主结贴~

名侦探小柯

梦石
10
星屑
4420
在线时间
3740 小时
注册时间
2006-9-6
回帖
36596

极短27获奖MZ评测员开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

发表于 2009-5-17 20:11:42 | 显示全部楼层
地形标志?
回复

使用道具 举报

穿越一季:朔

梦石
0
星屑
50
在线时间
333 小时
注册时间
2007-4-11
回帖
5052

贵宾

发表于 2009-5-17 20:11:55 | 显示全部楼层
那么只有地形标志了
6R复活?别扯淡了.

柳柳一旦接手66RPG,我果断呵呵啊。
回复

使用道具 举报

梦石
0
星屑
449
在线时间
190 小时
注册时间
2006-1-8
回帖
44
发表于 2009-5-17 21:30:18 | 显示全部楼层
def is_in_verge?(x,y)
   x1 = 0...$game_map.width
   y1 = 0...$game_map.height
   if x1.include?(x) and (y == 0 or  y == $game_map.height-1)
     return true
   elsif y1.include?(y) and (x == 0 or x == $game_map.width-1)
     return true
   end
   return false
end


回复

使用道具 举报

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
 楼主| 发表于 2009-5-17 21:39:28 | 显示全部楼层
请问楼上,怎么在并行处理事件的脚本里判断啊? if 1号事件移动到边界,就打开10号开关
回复

使用道具 举报

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
回帖
4075
发表于 2009-5-17 21:41:24 | 显示全部楼层
以下引用stella于2009-5-17 13:39:28的发言:

请问楼上,怎么在事件的脚本里判断啊? if 1号事件移动到边界,就打开10号开关

这个用地形标志最好了

1号变量代入地形标志,当地形标志=1时,打开10号开关
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
 楼主| 发表于 2009-5-17 21:45:23 | 显示全部楼层
那么能不能在脚本编辑器里设置:当所有地图中名为EV003的事件到达地图边界就自动回到主角的坐标,这样地图多的话,就用不着一张一张地图设置地形标志了
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-5-17 22:02:48 | 显示全部楼层
以下引用Flyingpww于2009-5-17 13:30:18的发言:

def is_in_verge?(x,y)
  x1 = 0...$game_map.width
  y1 = 0...$game_map.height
  if x1.include?(x) and (y == 0 or  y == $game_map.height-1)
    return true
  elsif y1.include?(y) and (x == 0 or x == $game_map.width-1)
    return true
  end
  return false
end

include? 是线性搜索,这样判断影响效率诶~
直接判断 x == 0 or x == $game_map.width - 1 即可,高度也同理,然后把这个函数放到 Interpreter 中,就能直接在事件脚本中调用了:
class Interpreter
  def is_in_verge?(x, y)
    ...
  end
end

系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
回复

使用道具 举报

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
 楼主| 发表于 2009-5-18 00:23:23 | 显示全部楼层
这么写吗??{/gg}

class Interpreter
  def is_in_verge?(x, y)
    if x == 0 or x == $game_map.width - 1
      return false
    elsif y == 0 or y == $game_map.height - 1
      return false
    else
      return true
    end
  end
end
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-5-18 08:42:08 | 显示全部楼层
这样也行,flyingpww那样是判断“在边界上”,你这样就是判断“不在边界”上~
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部