查看: 2389|回复: 3

[已经解决] 关于新建窗口

[复制链接]
梦石
1
星屑
4147
在线时间
1211 小时
注册时间
2013-8-9
回帖
2353

极短28评委R考场第七期纪念奖开拓者

发表于 2015-6-22 22:40:24 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 鑫の尘埃 于 2015-6-22 22:50 编辑

建立窗口是这样的吗?
@bl = Window.new
    @bl.windowskin = RPG::Cache.windowskin("001-Blue01.png")
    @bl.x = x位置
    @bl.y = y位置
    @bl.width = 宽
    @bl.height = 高
    @bl.z = 100
    @bl.contents = Bitmap.new(width-32, height-64 )
    @bl.contents.draw_text(x位置, y位置, 宽, 高, 内容)
然而系统总是报错啊....
还有
假如要在地图ID = 002 显示这个窗口
要在那些地方插入这个脚本呢?

点评

去学脚本吧少年(因为你写的不够好)【你可以加一些RM群  发表于 2015-6-22 22:47

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

2021.8-2024.5
消失了3年的阿鑫再次出现
目标是做做论坛作品的实况,给创作者们些许反馈
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-6-22 23:15:43 | 显示全部楼层
如果是建立功能比较简单的窗口,要使用类似的写法,不过不能使用Window.new这样的写法,应该使用RGSS的Window_Base类。
记得写在 Scene_XXX里面
[pre lang="Ruby"]@bl = Window_Base.new(x坐标, y坐标, 宽, 高)
@bl.contents = Bitmap.new(@bl.width - 32, @bl.height - 32)
@bl.contents.draw_text(x, y, 宽, 高, 内容[, 对齐方式])[/pre]
用完这个窗口后,一定要记得释放,一般是在Scene_XXX主循环结束之后就要释放。
如果建立功能比较复杂的窗口,建议单独开一个类。
[pre lang="Ruby"]class Window_MyWindow < Window_Base
  def initialize
    super(0, 0, 300, 200)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
    self.contents.clear
    self.contents.draw_text(4, 0, 160, 32, "测试文字")
  end
end[/pre]
要使用窗口,例如要在地图场景中,当地图ID为2的时候显示,其他情况下不显示,就要在Scene_Map上修改。
为了使得代码简洁,我们采用alias写法,当然,写好的脚本必须要放在Scene_Map这组脚本之后。
[pre lang="Ruby"]class Scene_Map
  alias rb_main_20150622 main
  def main
    @test_window = Window_MyWindow.new
    rb_main_20150622
    @test_window.dispose
  end
  alias rb_update_20150622 update
  def update
    @test_window.update
    rb_update_20150622
  end
end
[/pre]
这样窗口算是接入了,但是我们要求只有当地图ID为2的时候才显示,所以我们还需要追加定义下面的脚本。下面的脚本和第一段写Window_MyWindow类的脚本写在一起就好了。
[pre lang="Ruby"]class Window_MyWindow < Window_Base
  def update
    super
    self.visible = $game_map.map_id == 2
  end
end[/pre]
上面那段写完就大功告成了!插入试试效果吧。

评分

参与人数 2星屑 +76 收起 理由
明特·布兰马修 + 60 认可答案
kuerlulu + 16 耐心的版主

查看全部评分

回复

使用道具 举报

梦石
1
星屑
4147
在线时间
1211 小时
注册时间
2013-8-9
回帖
2353

极短28评委R考场第七期纪念奖开拓者

 楼主| 发表于 2015-6-23 09:10:01 | 显示全部楼层
本帖最后由 鑫の尘埃 于 2015-6-23 09:28 编辑
RyanBern 发表于 2015-6-22 23:15
如果是建立功能比较简单的窗口,要使用类似的写法,不过不能使用Window.new这样的写法,应该使用RGSS的Wind ...


(σ゚∀゚)σ写得好详细啊!我也能看懂啦!【其实只要复制粘贴就好了吧....
十分的感谢!!
2021.8-2024.5
消失了3年的阿鑫再次出现
目标是做做论坛作品的实况,给创作者们些许反馈
回复

使用道具 举报

梦石
0
星屑
606
在线时间
797 小时
注册时间
2014-7-1
回帖
501

开拓者

发表于 2015-6-28 08:01:32 | 显示全部楼层
01.@bl = Window_Base.new(x坐标, y坐标, 宽, 高)
02.@bl.contents = Bitmap.new(@bl.width - 32, @bl.height - 32)
03.@bl.contents.draw_text(x, y, 宽, 高, 内容[, 对齐方式])

我要怎么进入这个界面呢  $scene = Scene_Bl .new
                                      $scene = Bl .new  都不对啊啊

点评

请仔细看版主的说明  发表于 2015-6-28 08:03
学习使我疲劳,打工使我疲惫,恋爱使我伤身,吸烟伤我肺腑,饮酒损我形象,旅游使我破费,月底不见铜板,只有在论坛里面看看各种大佬才能使我进去
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部