Project1

标题: 【求纠错】脚本哪里错了 [打印本页]

作者: fux2    时间: 2010-9-14 13:29
标题: 【求纠错】脚本哪里错了
这里的CASE该怎么写?
case ev.name.include?
   
    when "绿乌龟"
  1. class Interpreter

  2. def gmove
  3.   for ev in $game_map.events.values
  4.     case ev.name.include?
  5.    
  6.     when "绿乌龟"
  7.       if ev.name == "绿乌龟左"
  8.         if $game_map.valid?(ev.x - 1, ev.y + 1)
  9.           ev.name = "绿乌龟右"
  10.         else
  11.           ev.move_left
  12.         end
  13.       else
  14.         if $game_map.valid?(ev.x + 1, ev.y + 1)
  15.           ev.name = "绿乌龟左"
  16.         else
  17.           ev.move_right
  18.         end
  19.       end

  20.     end
  21.     end
  22.   end
  23. end
复制代码

作者: 六祈    时间: 2010-9-14 13:31
本帖最后由 六祈 于 2010-9-14 13:32 编辑

看你这段代码,似乎用if else就可以了,为啥要用case when else呢?


另外你要的功能可以这样实现:

case ev.name
when /绿乌龟/
when /红乌龟/
else
end
作者: fux2    时间: 2010-9-14 13:33
回复 六祈 的帖子


    我有很多名字需要判断…………还有貌似ev.name = "绿乌龟右"这样的语句不正确哦,怎么修改怪物的名字呢
作者: 六祈    时间: 2010-9-14 13:57
回复 fux2 的帖子

被卡了一下,原来Game_Event类是RPG::Event类的一个外壳…
  1. class Game_Event
  2.   def name
  3.     @event.name
  4.   end
  5.   
  6.   def name=(name)
  7.     @event.name = name
  8.   end
  9. end
复制代码
在main前追加这段代码,就可以使用$game_map.events[id].name和name = 了
作者: enghao_lim    时间: 2010-9-15 22:57
其实如果对读取或写入局部变量没有特殊处理可以写成:
<code>class Game_Event
attr_accessor :name
end</code>




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