查看: 2867|回复: 4

[已经解决] 请教一个新建的类同时继承另外2个类的方法

[复制链接]
梦石
0
星屑
9160
在线时间
466 小时
注册时间
2015-5-8
回帖
704
发表于 2020-5-26 18:30:39 | 显示全部楼层 |阅读模式

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

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

×
我想新建一个类Class ABC,咱想让这个类既能继承class Game_Actor 也能继承 class Window_Selectable,
(如果只继承一个类可以写成class ABC < Window_Selectable或class ABC < Game_Actor,这个知识点咱知道)
继承过后咱是希望类class Game_Actor 和 类class Window_Selectable里面的类变量(前面带@的)都可以直接拿到class ABC 里使用。

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

头像被屏蔽
梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
回帖
1401
发表于 2020-5-26 18:39:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2020-5-31 19:02:29 | 显示全部楼层
想了想,还是不建议使用多继承。你可以参考Sprite_Battler的实现,它就绑定了一个Game_Battler对象在内部使用。
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2020-5-31 19:36:33 | 显示全部楼层
本帖最后由 KB.Driver 于 2020-5-31 19:37 编辑

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

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

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

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

最后抓个虫,名字前面是一个@符号的叫实例变量,两个@符号的才是类变量。

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
回帖
205
发表于 2020-7-8 08:03:24 | 显示全部楼层
继承的方法我不清楚
不过你举例的问题 参考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楼说的
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部