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

Project1

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

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

[复制链接]

Lv3.寻梦者 (暗夜天使)

梦石
1
星屑
2971
在线时间
1041 小时
注册时间
2013-8-9
帖子
2328

R考场第七期纪念奖开拓者

跳转到指定楼层
1
发表于 2015-6-22 22:40:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 鑫の尘埃 于 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年的阿鑫再次出现

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2015-6-22 23:15:43 | 只看该作者
如果是建立功能比较简单的窗口,要使用类似的写法,不过不能使用Window.new这样的写法,应该使用RGSS的Window_Base类。
记得写在 Scene_XXX里面
RUBY 代码复制
  1. @bl = Window_Base.new(x坐标, y坐标, 宽, 高)
  2. @bl.contents = Bitmap.new(@bl.width - 32, @bl.height - 32)
  3. @bl.contents.draw_text(x, y, 宽, 高, 内容[, 对齐方式])

用完这个窗口后,一定要记得释放,一般是在Scene_XXX主循环结束之后就要释放。
如果建立功能比较复杂的窗口,建议单独开一个类。
RUBY 代码复制
  1. class Window_MyWindow < Window_Base
  2.   def initialize
  3.     super(0, 0, 300, 200)
  4.     self.contents = Bitmap.new(width - 32, height - 32)
  5.     refresh
  6.   end
  7.   def refresh
  8.     self.contents.clear
  9.     self.contents.draw_text(4, 0, 160, 32, "测试文字")
  10.   end
  11. end

要使用窗口,例如要在地图场景中,当地图ID为2的时候显示,其他情况下不显示,就要在Scene_Map上修改。
为了使得代码简洁,我们采用alias写法,当然,写好的脚本必须要放在Scene_Map这组脚本之后。
RUBY 代码复制
  1. class Scene_Map
  2.   alias rb_main_20150622 main
  3.   def main
  4.     @test_window = Window_MyWindow.new
  5.     rb_main_20150622
  6.     @test_window.dispose
  7.   end
  8.   alias rb_update_20150622 update
  9.   def update
  10.     @test_window.update
  11.     rb_update_20150622
  12.   end
  13. end

这样窗口算是接入了,但是我们要求只有当地图ID为2的时候才显示,所以我们还需要追加定义下面的脚本。下面的脚本和第一段写Window_MyWindow类的脚本写在一起就好了。
RUBY 代码复制
  1. class Window_MyWindow < Window_Base
  2.   def update
  3.     super
  4.     self.visible = $game_map.map_id == 2
  5.   end
  6. end

上面那段写完就大功告成了!插入试试效果吧。

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

梦石
1
星屑
2971
在线时间
1041 小时
注册时间
2013-8-9
帖子
2328

R考场第七期纪念奖开拓者

3
 楼主| 发表于 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年的阿鑫再次出现
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
596
在线时间
797 小时
注册时间
2014-7-1
帖子
578

开拓者

4
发表于 2015-6-28 08:01:32 | 只看该作者
01.@bl = Window_Base.new(x坐标, y坐标, 宽, 高)
[email protected] = Bitmap.new(@bl.width - 32, @bl.height - 32)
[email protected]_text(x, y, 宽, 高, 内容[, 对齐方式])

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

点评

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 09:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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