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

Project1

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

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

[复制链接]

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39706
在线时间
7486 小时
注册时间
2009-7-6
帖子
13484

开拓者贵宾

跳转到指定楼层
1
发表于 2010-9-14 13:29:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这里的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

Lv1.梦旅人

旅之愚者

梦石
0
星屑
240
在线时间
812 小时
注册时间
2007-7-28
帖子
2148

贵宾

2
发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39706
在线时间
7486 小时
注册时间
2009-7-6
帖子
13484

开拓者贵宾

3
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

旅之愚者

梦石
0
星屑
240
在线时间
812 小时
注册时间
2007-7-28
帖子
2148

贵宾

4
发表于 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
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7946
在线时间
1182 小时
注册时间
2007-7-29
帖子
2055
5
发表于 2010-9-15 22:57:45 | 只看该作者
其实如果对读取或写入局部变量没有特殊处理可以写成:
<code>class Game_Event
attr_accessor :name
end</code>
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-30 15:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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