Project1
标题:
聪聪请教...class方法被占用了怎么办...
[打印本页]
作者:
正太君
时间:
2015-11-13 11:53
标题:
聪聪请教...class方法被占用了怎么办...
msgbox $game_troop.members[0].class #=>Game_Enemy...
msgbox $game_party.members[0].class #=>不是Game_Actor,而是角色职业信息...
复制代码
请问如何用简便的办法,使得$game_party.members[0]调用一个方法,得到Game_Actor呢?
这里需要判定战斗时两个任意单位是否同时是敌人或同时是队友,也就是判定a.class == b.class,但是遇到了class重名方法咿咿咿...
作者:
正太君
时间:
2015-11-13 12:15
说明一下,聪聪的最终目的不是仅仅判定两个单位是否同为敌人或角色,而是希望有另外一个方法代替class方法,例如新方法klass,使得a.klass == b.klass得以判定...具体怎么样做比较简便?
作者:
VIPArcher
时间:
2015-11-13 12:50
本帖最后由 VIPArcher 于 2015-11-13 12:53 编辑
class Game_BattlerBase; alias_method :klass, :class end
复制代码
未测试
$game_party.members[0].klass
作者:
正太君
时间:
2015-11-13 18:04
这样说吧...
方法rand被重新定义了
def rand(x)
return "聪聪全国第三帅"
end
这个定义现在开始不许动,如何定义方法 rand_new(),使得rand_new(5)的值随机得到0,1,2,3,4,即是恢复rand方法的旧功能...
作者:
taroxd
时间:
2015-11-13 18:26
以下方法都没测试
Kernel.instance_method(:class).bind($game_party.members[0]).call
复制代码
module Kernel
alias __class__ class
end
$game_party.members[0].__class__
复制代码
作者:
精灵使者
时间:
2015-11-13 22:55
这样说吧...
方法rand被重新定义了
def rand(x)
return "聪聪全国第三帅"
end
这个定义现在开始不许动,如何定义方法 rand_new(),使得rand_new(5)的值随机得到0,1,2,3,4,即是恢复rand方法的旧功能...
alias rand_new rand
def rand(x)
return "聪聪全国第三帅"
end
复制代码
大概就这样,使用重命名方法
这样就成啦
作者:
tan12345
时间:
2015-11-15 15:41
如果只是判定敌友关系的话,没必要这么麻烦,Game_BattlerBase下有个函数叫actor?和enemy?,如果actor,那么actor?返回真,enemy?返回假;同理如果enemy,那么actor?返回假,enemy?返回真
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1