Project1

标题: 有些不明白的脚本?请耐心解答下呵 [打印本页]

作者: dabojun    时间: 2012-5-14 11:19
标题: 有些不明白的脚本?请耐心解答下呵
# 自己是主角、对方的图形是角色的情况下     为什么会表达为这种形式呢?? {:2_251:}
翻译为:如果事件的角色名称不等于任意字符串??看不懂呀…~
                  if event.character_name != ""
# 不能通行
                    return false
为什么要设定成“自己是主角、对方的图形是角色的情况下,不能通行”这种呢??{:2_257:}








def bigevent_passable?(x, y, d)  
定义巨大事件的通行判定 (true:可通行;false:不可通行)

坐标在地图以外的情况

不能通行

穿透是 ON 的情况下

可以通行

移动者的元件无法来到指定方向的情况下

通行不可

元件从指定方向不能进入到移动处的情况下       

不能通行



循环全部事件                            # 为何在这个地方要“循环全部事件呢”??而不是在最后的位置循环??{:2_248:}


事件坐标与移动目标坐标一致的情况下

穿透为 ON的情况下

(可以通行)

自己就是事件的情况下

不能通行

自己是主角、对方的图形是角色的情况下

不能通行

主角的坐标与移动目标坐标一致的情况下
穿透为 ON
(可以通行)
自己的图形是角色的情况下
不能通行


除此之外可以通行
dsu_plus_rewardpost_czw
作者: 飞3a    时间: 2012-5-14 22:10
= =关于 自己是主角、对方的图形是角色的情况下  同样表示不理解,估计编者的含义是如果你要去的地方正好那里站了个人,就不能走
循环时间是想刷新一下。。。你挪了一次看看有没有再碰到上述的(能否通行的)问题。???
作者: end55rpg    时间: 2012-5-14 23:05
翻译错了
是当事件行走图不为空白就不可通行啊
作者: dabojun    时间: 2012-5-15 18:30
本帖最后由 dabojun 于 2012-5-16 16:11 编辑

啊!感谢楼上两位的解答,我明白了 如果你要去的地方没有人,可以走;事件行走图为空白可以通行。
只是不明白循环的位置为何不放在下方而是中间呢? 下方的事件也是被循环检测的吗??
既这一段:(也会被循环检测吗?)
事件坐标与移动目标坐标一致的情况下

穿透为 ON的情况下

(可以通行)

自己就是事件的情况下

不能通行

自己是主角、对方的图形是角色的情况下

不能通行

主角的坐标与移动目标坐标一致的情况下
穿透为 ON
(可以通行)
自己的图形是角色的情况下
不能通行


除此之外可以通行





作者: xszhu123    时间: 2012-5-15 23:01
(*^__^*) 嘻嘻……
作者: dabojun    时间: 2012-5-16 16:13
@飞3a这个问题还有个小疑问想请你再帮忙看一下~
作者: 飞3a    时间: 2012-5-16 19:32
dabojun 发表于 2012-5-16 16:13
@飞3a这个问题还有个小疑问想请你再帮忙看一下~

某飞很贱的拿尺子对了一下for的缩进。。。。
你说的是这个帖子的http://rpg.blue/thread-232046-1-1.html这个吧?
那我为了方便把它贴过来好了
37.            for event in $game_map.events.values
38.              # 事件坐标于移动目标坐标一致的情况下
39.              if event.areas.include?(new_point) and self != event
40.                # 穿透为 ON
41.                unless event.through
42.                  # 自己就是事件的情况下
43.                  if self != $game_player
44.                    # 不能通行
45.                    return false
46.                  end
47.                  # 自己是主角、对方的图形是角色的情况下
48.                  if event.character_name != ""
49.                    # 不能通行
50.                    return false
51.                  end
52.                end
53.              end
54.            end
这上面的37-54是一个循环体,剩下的语言和循环体无关。
一般在c里面是这么写的:
for()//判断条件,初始值等
{//你写的语句
}
然而在ruby里,{}不是很常用,一般的格式是:
class A
end#我写了一个类的格式,在java或者别的什么的话写法是:
class A
{//你写的语句
}
好了扯回来你说关于循环在中间的问题,不知道你有没有注意到两个判断的条件不一样:(红字的部分)
55.            # 主角的坐标与移动目标坐标一致的情况下
56.            if $game_player.areas.include?(new_point)
一个是事件,一个是主角,两个东西不一样。
作者: dabojun    时间: 2012-5-16 20:12
飞3a 发表于 2012-5-16 19:32
某飞很贱的拿尺子对了一下for的缩进。。。。
你说的是这个帖子的http://rpg.blue/thread-232046-1-1 ...

你的意思是… for event in $game_map.events.values这段循环承接了上下两部分内容吗?
如果理解有出入莫怪~
作者: 飞3a    时间: 2012-5-16 21:00
dabojun 发表于 2012-5-16 20:12
你的意思是… for event in $game_map.events.values这段循环承接了上下两部分内容吗?
如果理解有出入莫 ...

$打头的是全局变量,在整个rgss中都有用。
可以看一下game_map的312行:
  #--------------------------------------------------------------------------
  # ● 获取指定位置的事件 ID
  #     x          : X 坐标
  #     y          : Y 坐标
  #--------------------------------------------------------------------------
  def check_event(x, y)
    for event in $game_map.events.values
      if event.x == x and event.y == y
        return event.id
      end
    end
  end
作者: dabojun    时间: 2012-5-16 21:15
飞3a 发表于 2012-5-16 21:00
$打头的是全局变量,在整个rgss中都有用。
可以看一下game_map的312行:
  #--------------------------- ...

在帮助中曾提到过"$"全局变量很强大,要慎用。原来是这样~
感谢“飞”的耐心解答和细心解答@ 我可以结贴了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1