Project1

标题: contents 是在什么地方定义的? [打印本页]

作者: zhangyulinz    时间: 2011-5-15 09:03
标题: contents 是在什么地方定义的?
本帖最后由 zhangyulinz 于 2011-5-15 10:07 编辑

#==============================================================================
# ■ Window_Base
#------------------------------------------------------------------------------
#  游戏中全部窗口的超级类。
#==============================================================================

class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● 常量
  #--------------------------------------------------------------------------
  WLH = 24                  # 窗口行高(Window Line Height)
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #     width  : 窗口宽度
  #     height : 窗口高度
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super()
    self.windowskin = Cache.system("Window")
    self.x = x
    self.y = y
    self.width = width
    self.height = height
    self.z = 100
    self.back_opacity = 200
    self.openness = 255
    create_contents
    @opening = false
    @closing = false
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    self.contents.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● 生成窗口内容
  #--------------------------------------------------------------------------
  def create_contents
    self.contents.dispose
    self.contents = Bitmap.new(width - 32, height - 32)
  
end

在红色字这部分,contents先清除内容然后才定义?

还有,Bitmap.new(width - 32, height - 32) 这句所谓的生成窗口内容 这里的内容指的是什么? 为什么要在W 和 H上减32?

:handshake
作者: DeathKing    时间: 2011-5-15 10:00
self.contents 是一个 Bitmap 对象,在此之前,可能已经创建好了一个 Bitmap 对象,因此需要重新创建。



帮助文档提及到了素材的规格,因此,Bitmap 的大小就要充分考虑到皮肤。因此才要减去皮肤上下左右没边各 16 像素的图像。否则就会出现下面的小三角形:






作者: zhangyulinz    时间: 2011-5-15 10:04
回复 DeathKing 的帖子

非常感谢:handshake


zhangyulinz于2011-5-15 11:18补充以下内容:
还想请教一下,
elf.windowskin = Cache.system("Window1")
这一句应是加载了位图了,但下面的
self.contents = Bitmap.new(width - 32, height - 32)
这一句却并没有传参呀,那那个windowskin是如何传递并生成窗口图形的呢?
作者: DeathKing    时间: 2011-5-15 14:32
本帖最后由 DeathKing 于 2011-5-15 14:32 编辑

回复 zhangyulinz 的帖子

Window_Base < Window

皮肤交由 Window 类绘制,Window_Base 以及其子类只能绘制窗口的 contents 。
Window 类不可见,应该是系统底层。


作者: zhangyulinz    时间: 2011-5-16 08:35
回复 DeathKing 的帖子

非常感谢:)
好的论坛就是要有好的版主




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