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

Project1

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

[已经过期] 請問如何製作一個窗口界面?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
114 小时
注册时间
2010-12-3
帖子
74
跳转到指定楼层
1
发表于 2011-3-4 23:22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
class Window_Data < Window_Base
  def initialize
    super(440, 0, 200, 480)
    refresh
  end
    def refresh
  self.contents.clear
end

class Scene_Data < Scene_Base
   def start
     @Data_window = Window_Data.new
   end
   def terminate
   end
   def update
     @Data_window.update          # 更新状态窗口
   if Input.trigger?(Input::B)      # 判断是否按下B键
     Sound.play_cancel    # 播放取消音效
     $scene = Scene_Map.new    # 回到菜单画面
   end
   end
end
end
我試著寫了這個...發現我打開界面的時候,人物是可以隨時移動的.而且按取消時,是manu選擇界面.而不是取消這個window_data.new.
改如何修改成好像人物狀態窗口似的?

Lv1.梦旅人

梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
帖子
1135
2
发表于 2011-3-4 23:34:40 | 只看该作者
本帖最后由 945127391 于 2011-3-5 00:41 编辑

那个.....你的窗口继承的是Window_Base,所以它只是一个窗口,而不是一个场景(Scene).我一时半会说不清,你不如去找点教程看看,比如雪流星的那篇.


请在def terminate 下添加一句 @Data_window.dispose

点评

試過一箭兄的辦法~.還是沒什麼變化. 能再看看是什麼出錯了嗎?  发表于 2011-3-5 00:17
哎呀,还真没看见,抱歉抱歉~~~  发表于 2011-3-4 23:46
有看到Scene_Data么? 大问题是最后的end摆错位置了. 应该放在Window_Data的结尾部分.  发表于 2011-3-4 23:39
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
114 小时
注册时间
2010-12-3
帖子
74
3
 楼主| 发表于 2011-3-5 01:36:32 | 只看该作者
回复 945127391 的帖子

class Window_Data < Window_Base
  def initialize
    super(440, 0, 200, 480)
    refresh
  end
    def refresh
  self.contents.clear
end
end
class Scene_Data < Scene_Base
   def start
     @Data_window = Window_Data.new
   end
   def terminate
     @Data_window.dispose
   end
   def update
     @Data_window.update          # 更新状态窗口
   if Input.trigger?(Input::B)      # 判断是否按下B键
     Sound.play_cancel    # 播放取消音效
     $scene = Scene_Map.new    # 回到菜单画面
   end
end
  end
修改完的版本如下...還是不行..
回复

使用道具 举报

Lv4.逐梦者

弓箭手?剑兰

梦石
0
星屑
5764
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
4
发表于 2011-3-5 08:29:16 | 只看该作者
其实你能详细说明一下你的脚本想放在Map的取消键?
放在Menu的状态上 ? 还是取替Menu?

点评

声明一下,主帖的文字说明我是不解的(不是因为繁简问题......)  发表于 2011-3-5 08:29
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
48
在线时间
841 小时
注册时间
2010-8-11
帖子
1135
5
发表于 2011-3-5 09:28:51 | 只看该作者
回复 cinapoem 的帖子

你调用的是不是$scene = Scene_Data.new  ?
如果是的话,调用后背景有没有变成黑色?

点评

我是在不知道的情况下摸索  发表于 2011-3-5 09:46
其实你知道这个脚本是想干啥的么?如果知道的话请告诉我.  发表于 2011-3-5 09:30
回复

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

6
发表于 2011-3-5 09:45:46 | 只看该作者
本帖最后由 铃仙·优昙华院·因幡 于 2011-3-5 10:27 编辑

好吧, 是咱错了.

应该是窗口没有 dispose 的原因. 导致 窗口还残留在画面上.

点评

其实我也不知道楼主想问什么的......  发表于 2011-3-5 10:28
没有super也可以啊~除非你的Scene_Base加了东西。(正常来说为了继承本类来说是要super的)  发表于 2011-3-5 10:23
试试就知道了. 只是写 Scene 的时候, 也是忘记加 super 然后就不能用了.  发表于 2011-3-5 10:12
看来看去也只能看得到多了super,Scene_Base的那三个方法不是空的么?  发表于 2011-3-5 10:10
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
114 小时
注册时间
2010-12-3
帖子
74
7
 楼主| 发表于 2011-3-5 11:05:11 | 只看该作者
回复 铃仙·优昙华院·因幡 的帖子

簡單地說.我想呼出一個窗口,就像的對話窗口一樣,呼出時,人物是不可移動的,按取消鍵時,窗口消失,返回遊戲.
但是我需要的是一個全屏幕的窗口.
回复

使用道具 举报

Lv2.观梦者

狂気の月兔

梦石
0
星屑
276
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

8
发表于 2011-3-5 11:06:27 | 只看该作者
回复 cinapoem 的帖子

全屏幕的话, 就改成

super(0, 0,544, 416)

主楼的问题是没有 dispose 导致的. 解决办法请看沙发

点评

其实三楼板凳的时候就已经有了dispose的说  发表于 2011-3-5 11:15
回复

使用道具 举报

Lv4.逐梦者

弓箭手?剑兰

梦石
0
星屑
5764
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
9
发表于 2011-3-5 11:21:10 | 只看该作者
那个窗口的super应该为:super(0, 0,Graphics.width, Graphics.height)  # 这个比八云的方法应该好一点

还有其中一个会导致你认为失败的原因可能是背景全黑色。那个Scene应该这样:
start加:create_menu_background
terminate加:dispose_menu_background
update加:update_menu_background   # (这个加不加也无所谓)
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
114 小时
注册时间
2010-12-3
帖子
74
10
 楼主| 发表于 2011-3-5 12:13:32 | 只看该作者
回复 一箭烂YiJL 的帖子

修改後的版本為
class Window_Data < Window_Base
  def initialize
    super(0, 0,Graphics.width, Graphics.height)
    refresh
  end
    def refresh
  self.contents.clear
end
end
class Scene_Data < Scene_Base
   def start
     create_menu_background
     @Data_window = Window_Data.new
   end
   def terminate
     dispose_menu_background
     @Data_window.dispose
   end
   def update
     update_menu_background
     @Data_window.update          # 更新状态窗口
   if Input.trigger?(Input::B)      # 判断是否按下B键
     Sound.play_cancel    # 播放取消音效
     $scene = Scene_Map.new    # 回到菜单画面
   end
end
  end

目前人物還是可以隨便移動,按取消還是直接呼出manu界面.
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-30 03:08

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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