查看: 2244|回复: 4

[已经解决] 【求纠错】脚本哪里错了

[复制链接]

老黄鸡

梦石
4
星屑
45793
在线时间
7956 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2010-9-14 13:29:18 | 显示全部楼层 |阅读模式

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

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

×
这里的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
复制代码

点评

问题得到回到后请去认可帖认可[url]http://bbs.66rpg.com/thread-155199-1-1.html[/url]【虽然有点不好意思,不过还是提醒下~】  发表于 2010-9-28 02:00
带问号的方法需要一个参数,返回true或者false,所以不能这样用  发表于 2010-9-14 13:30

旅之愚者

梦石
0
星屑
560
在线时间
814 小时
注册时间
2007-7-28
回帖
2121

贵宾

发表于 2010-9-14 13:31:30 | 显示全部楼层
本帖最后由 六祈 于 2010-9-14 13:32 编辑

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


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

case ev.name
when /绿乌龟/
when /红乌龟/
else
end

点评

擦汗……我没有定义过name=(name)这样的方法……不知道该怎么做?  发表于 2010-9-14 13:39
哎呀版主大人果然厉害,那名字该怎么修改呢?我想判断乌龟的行动方向,不知道有没有更好的方法  发表于 2010-9-14 13:36
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45793
在线时间
7956 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

 楼主| 发表于 2010-9-14 13:33:10 | 显示全部楼层
回复 六祈 的帖子


    我有很多名字需要判断…………还有貌似ev.name = "绿乌龟右"这样的语句不正确哦,怎么修改怪物的名字呢

点评

ev.name = "xxx"报错吗?那可能是因为Game_Event类没有定义name=(name)方法,你可以补充一个  发表于 2010-9-14 13:37
2楼已编辑,请参考  发表于 2010-9-14 13:35
回复

使用道具 举报

旅之愚者

梦石
0
星屑
560
在线时间
814 小时
注册时间
2007-7-28
回帖
2121

贵宾

发表于 2010-9-14 13:57:52 | 显示全部楼层
回复 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 = 了

点评

受教了。。。  发表于 2010-9-14 15:50
回复

使用道具 举报

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
回帖
2014
发表于 2010-9-15 22:57:45 | 显示全部楼层
其实如果对读取或写入局部变量没有特殊处理可以写成:
<code>class Game_Event
attr_accessor :name
end</code>
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部