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

Project1

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

[已经解决] 【VxAce】Window_BattleActor为什么如此与众不同?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
179
在线时间
416 小时
注册时间
2020-1-11
帖子
256
跳转到指定楼层
1
发表于 2020-9-2 21:46:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 alianlord 于 2020-9-2 22:32 编辑


这并不难解,Window_BattleStatus的窗口脚本中,有文字和值槽的描画,一应俱全。


Window_BattleActor < Window_BattleStatus 。Window_BattleActor 是  Window_BattleStatus 的子类。
但是Window_BattleActor 中,没有任何文字和值槽的描画的脚本内容,那截图中的文字和值槽是如何实现的?
另外这一段,
class Window_BattleActor < Window_BattleStatus
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #     info_viewport : 信息显示用显示端口
  #--------------------------------------------------------------------------
  def initialize(info_viewport)
    super()
    self.y = info_viewport.rect.y
    self.visible = false
    self.openness = 255
    @info_viewport = info_viewport
  end
  #--------------------------------------------------------------------------
  # ● 显示窗口
  #--------------------------------------------------------------------------
  def show
    if @info_viewport
      width_remain = Graphics.width - width
      self.x = width_remain
      @info_viewport.rect.width = width_remain
      select(0)
    end
    super
  end
红字的 if @info_viewport 能否解释一下,到底代表什么含义。拜谢之。

Lv3.寻梦者

梦石
0
星屑
1288
在线时间
180 小时
注册时间
2012-8-26
帖子
96
2
发表于 2020-9-4 09:28:40 | 只看该作者
VA区应该有一个写的挺清楚的教程,可以尝试看看,以下为个人理解:
Window_BattleActor 继承了 Window_BattleStatus,如下,则BattleActor具有了BattleStatus的所有方法,绘制槽值的自然也继承了;
  1. class Window_BattleActor < Window_BattleStatus
复制代码

接下来,在初始化方法中@info_viewport 这个实例变量被赋值,但若窗口已经被释放或者尚未初始化,则 @info_viewport为空值;
if @info_viewport 即是 if (@info_viewport != nil),即当@info_viewport是非空值时,执行if语句块中的内容,执行内容如下:
  1. width_remain = Graphics.width - width
  2.       self.x = width_remain
  3.       @info_viewport.rect.width = width_remain
  4.       select(0)//设置默认选项
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
179
在线时间
416 小时
注册时间
2020-1-11
帖子
256
3
 楼主| 发表于 2020-9-4 11:50:58 | 只看该作者
多啦A户 发表于 2020-9-4 09:28
VA区应该有一个写的挺清楚的教程,可以尝试看看,以下为个人理解:
Window_BattleActor 继承了 Window_Batt ...

目前为止我的了解,当#------------------------------------------------------------------------------
#  战斗画面
#==================================================================class Scene_Battle < Scene_Base
………
#--------------------------------------------------------------------------
  # ● 生成信息显示的显示端口
  #--------------------------------------------------------------------------
  def create_info_viewport
    @info_viewport = Viewport.new
    @info_viewport.rect.y = Graphics.height - @status_window.height
    @info_viewport.rect.height = @status_window.height
    @info_viewport.z = 100
    @info_viewport.ox = 64
    @status_window.viewport = @info_viewport
  end
当红字的代码生成 @info_viewport 之时。同时生成了(或是复制了)另一个
@status_window = Window_BattleStatus.new,
它和 @actor_window = Window_BattleActor.new(@info_viewport) 是一样的。
@status_window也是继承 Window_Selectable。也是能像 @actor_window 选择目标和确定取消的。
只是@status_window 伪装成单存的显示Window_Base类窗口。
我表示出的意思条理可能不太清楚,但可能就是这么回事。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-19 00:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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