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

Project1

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

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

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
跳转到指定楼层
1
发表于 2009-5-17 20:06:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2009-5-17 20:11:42 | 只看该作者
地形标志?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

穿越一季:朔

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

贵宾

3
发表于 2009-5-17 20:11:55 | 只看该作者
那么只有地形标志了
6R复活?别扯淡了.

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
452
在线时间
191 小时
注册时间
2006-1-8
帖子
53
4
发表于 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


回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
5
 楼主| 发表于 2009-5-17 21:39:28 | 只看该作者
请问楼上,怎么在并行处理事件的脚本里判断啊? if 1号事件移动到边界,就打开10号开关
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
6
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
8
发表于 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感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
9
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
10
发表于 2009-5-18 08:42:08 | 只看该作者
这样也行,flyingpww那样是判断“在边界上”,你这样就是判断“不在边界”上~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-15 06:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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