查看: 1535|回复: 4

[已经解决] contents 是在什么地方定义的?

  [复制链接]
梦石
0
星屑
50
在线时间
8 小时
注册时间
2010-9-24
回帖
4
发表于 2011-5-15 09:03:47 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 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
梦石
0
星屑
1580
在线时间
1564 小时
注册时间
2008-7-30
回帖
4207

贵宾

发表于 2011-5-15 10:00:23 | 显示全部楼层
self.contents 是一个 Bitmap 对象,在此之前,可能已经创建好了一个 Bitmap 对象,因此需要重新创建。

_window2.png


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

_window.png





See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复

使用道具 举报

梦石
0
星屑
50
在线时间
8 小时
注册时间
2010-9-24
回帖
4
 楼主| 发表于 2011-5-15 10:04:06 | 显示全部楼层
回复 DeathKing 的帖子

非常感谢:handshake


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

使用道具 举报

梦石
0
星屑
1580
在线时间
1564 小时
注册时间
2008-7-30
回帖
4207

贵宾

发表于 2011-5-15 14:32:09 | 显示全部楼层
本帖最后由 DeathKing 于 2011-5-15 14:32 编辑

回复 zhangyulinz 的帖子

Window_Base < Window

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


See FScript Here:https://github.com/DeathKing/fscript
潜心编写URG3中。
所有对URG3的疑问和勘误或者建议,请移步至发布页面。
欢迎萌妹纸催更
回复

使用道具 举报

梦石
0
星屑
50
在线时间
8 小时
注册时间
2010-9-24
回帖
4
 楼主| 发表于 2011-5-16 08:35:02 | 显示全部楼层
回复 DeathKing 的帖子

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

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部