查看: 3081|回复: 5

[已经解决] 能不能把显示文章位置脚本改成这样?

[复制链接]
梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
回帖
50
发表于 2010-8-31 17:27:02 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 woyodo 于 2010-8-31 21:16 编辑

原脚本(Window_Message):
  #--------------------------------------------------------------------------
  # ● 设置窗口位置与不透明度
  #--------------------------------------------------------------------------
  def reset_window
    if $game_temp.in_battle
      self.y = 16
    else
      case $game_system.message_position
      when 0  # 上
        self.y = 16
      when 1  # 中
        self.y = 160
      when 2  # 下
        self.y = 304
      end
    end


现在:
  #--------------------------------------------------------------------------
  # ● 设置窗口位置与不透明度
  #--------------------------------------------------------------------------
  def reset_window
    if $game_temp.in_battle
      self.y = 16
    else
      case $game_system.message_position
      when 0  # 上
        super(115, 304, 515, 160)
      when 1  # 中
        self.y = 160
      when 2  # 下
        self.y = 304
      end
    end

我想把“上”作为显示脸图的方案,但是这样改系统提示错误,求解,谢谢!

Michael Jackson
  KING OF POP
梦石
0
星屑
79
在线时间
211 小时
注册时间
2010-8-21
回帖
423
发表于 2010-8-31 17:28:39 | 显示全部楼层
我只试过改成:
                      self.x = 115
                      self.y = 304
成功过

点评

不好意思,我加分上限是一分  发表于 2010-8-31 21:16
对了 ,还得提醒下,你改动这个的话,在事件设置文章位置的地方就会移位,所以还是建议自己写个when 3 然后需要的时候再调用  发表于 2010-8-31 17:39
可以使用,感谢解答!  发表于 2010-8-31 17:36
我是脚本盲,我只懂这样改,至于其他,等高手来解吧  发表于 2010-8-31 17:34
就是说CASE下只能用SELF?  发表于 2010-8-31 17:32

评分

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

查看全部评分

回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2010-8-31 17:37:25 | 显示全部楼层
= =b super的含义是:召唤父类同名方法调用(伪多态)。WM的父类WS显然不具有这个方法因此出错。通常设置位置只要self.x = ,self.y = 即可
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复

使用道具 举报

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-22
回帖
50
 楼主| 发表于 2010-8-31 17:39:49 | 显示全部楼层
回复 IamI 的帖子

那这句的SUPER又是什么意思呢?它的父类是什么?感谢回答!
  #--------------------------------------------------------------------------
  # ● 初始化状态
  #--------------------------------------------------------------------------
  def initialize
    super(80, 304, 480, 160)
   

点评

可以去认可帖叫版主来加分  发表于 2010-8-31 21:38
回复

使用道具 举报

孤独守望

梦石
0
星屑
3144
在线时间
1535 小时
注册时间
2006-10-16
回帖
4223

开拓者贵宾

发表于 2010-8-31 17:45:39 | 显示全部楼层
回复 woyodo 的帖子
WS = Window_Selectable。
这句super调用Window_Selectable中的initialize方法,这个方法接受四个参数,设定窗口的XYWH。具体可以自行参考源码。
   

点评

感谢解答  发表于 2010-8-31 17:50
回复

使用道具 举报

梦石
0
星屑
79
在线时间
211 小时
注册时间
2010-8-21
回帖
423
发表于 2010-8-31 18:06:19 | 显示全部楼层
回复 woyodo 的帖子


对于您的问题我已经找到解决方案了,只要改成这样即可
  1.         self.x = 115
  2.         self.y = 304
  3.         self.width = 515
  4.         self.height = 160
复制代码
还是强烈建议下,加个when 3  然后用  $game_system.message_position = 3  调用就行,上面那些位置是系统默认的
如果你想改动也可以,只是位置还是自己斟酌下

点评

非常感谢,用你的方法已经成功了! 把“上”改掉只是因为事件编辑时不用打脚本,比较方便。  发表于 2010-8-31 21:13

评分

参与人数 1星屑 +200 收起 理由
六祈 + 200 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部