Project1

标题: 请教一个新建的类同时继承另外2个类的方法 [打印本页]

作者: taeckle    时间: 2020-5-26 18:30
标题: 请教一个新建的类同时继承另外2个类的方法
我想新建一个类Class ABC,咱想让这个类既能继承class Game_Actor 也能继承 class Window_Selectable,
(如果只继承一个类可以写成class ABC < Window_Selectable或class ABC < Game_Actor,这个知识点咱知道)
继承过后咱是希望类class Game_Actor 和 类class Window_Selectable里面的类变量(前面带@的)都可以直接拿到class ABC 里使用

还请诸位指点一二,多谢了!


作者: chanszeman1018    时间: 2020-5-26 18:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: guoxiaomi    时间: 2020-5-31 19:02
想了想,还是不建议使用多继承。你可以参考Sprite_Battler的实现,它就绑定了一个Game_Battler对象在内部使用。
作者: KB.Driver    时间: 2020-5-31 19:36
本帖最后由 KB.Driver 于 2020-5-31 19:37 编辑

建议使用“内含并转发”,而不是继承

什么是继承?
Sprite_Character < Sprite_Base 这种就是

什么是内含并转发?
Game_Variables里面包含一个数组变量@data,并且通过定义[]与[]=方法,
再把执行内容转发给@data来完成,从而将自己伪造成一个有部分数组功能的类。

你说的这种情况,可以将类继承自Window_Selectable,
然后再在内部使用Game_Actor的实例,并把Game_Actor的方法转发给这个实例来完成。

最后抓个虫,名字前面是一个@符号的叫实例变量,两个@符号的才是类变量。
作者: RPGzh500223    时间: 2020-7-8 08:03
继承的方法我不清楚
不过你举例的问题 参考RMXP里Window_Skill不就可以了
Window_Skill是Window_Selectable的子类
Window_Skill的参数actor在Scene_Skill中 @actor = $game_party.actors[@actor_index]
Game_Party中角色来自Game_Actors
Game_Actors基本就是Game_Actor   这是不是如4楼说的




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