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

Project1

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

[已经过期] 好吧,又是窗口(Window)的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
跳转到指定楼层
1
发表于 2013-7-27 21:23:28 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 clear仔 于 2013-7-27 21:25 编辑

想弄个在战斗中显示状态信息的东西。
先追加了类:
RUBY 代码复制
  1. class Window_State < Window_Base
  2.   def initialize
  3.     super(160,0,480,320)
  4.     self.opacity = 160
  5.     self.back_opacity = 160
  6.     self.contents = Bitmap.new(384,256)
  7.   end
  8.   def make_text
  9.     for i in 0..$show_state_choose.index
  10.       case $show_state_choose.commands[i]
  11.       when "战斗不能"
  12.         a = "\\C[2]名称:战斗不能"
  13.         b = "效果:\\n因受重伤而不能行动,若战斗结束时仍然处于此状态,\\n将无法获得战斗经验。"      
  14.       else
  15.         a = "aaaaaaaa"
  16.         b = "bbbbbbbb"
  17.       end
  18.       end
  19.       self.contents.draw_text(16,16,224,32,a)
  20.       self.contents.draw_text(16,48,224,32,b)
  21.     end
  22.     end
  23. class Window_Command < Window_Selectable
  24.   attr_accessor :commands
  25. end



然后在Scene_Battle里添加了:


RUBY 代码复制
  1. def state_start
  2.      @window_help.visible = false if @window_help
  3.            @party_command_window.active = false
  4.            @party_command_window.visible = false
  5.            start_actor_select
  6.          if Input.trigger?(Input::C)
  7.            $arrow_index =  @actor_arrow.actor
  8.            end_actor_select
  9.            $states = ["属性"]
  10.            for i in $arrow_index.states
  11.              $states.push($data_states[i].name.to_s)
  12.            end
  13.            $show_state_choose = Window_Command.new(160,$states)
  14.            $show_state_choose.opacity = 160
  15.            $show_state_choose.back_opacity = 160
  16.            $show_state_choose.active = true
  17.            $show_state_choose.height = 320
  18.            @state_window = Window_State.new      
  19.           end
  20.       end
  21.  
  22.       def state_do
  23.       if Input.trigger?(Input::B)
  24.        $show_state_choose.active = false
  25.        $show_state_choose.visible = false
  26.        @window_help.visible = true if @window_help
  27.        @party_command_window.active = true
  28.        @party_command_window.visible = true
  29.        @state_window.visible = false
  30.      end
  31.      @state_window.make_text
  32.     end


将原来的Scene_Battle2中,方法update_phase2中,“when 1 ”的分支改为了
RUBY 代码复制
  1. $game_system.se_play($data_system.decision_se)
  2.         state_start


又在Scene_Battle1中,update方法中,添加了
RUBY 代码复制
  1. if $show_state_choose.active
  2. state_do
  3. return
  4. end

这样应该就可以在摁下逃跑选项的时候选择角色,然后显示选择窗口和信息窗口,随着光标的移动而改变信息窗口的内容了。
可是,明明在生成窗口前,调用了方法start_actor_select,但是就好像跳过了一样没有用,而且按下B键应该可以返回,但是没用,
而且按C键似乎会一直生成窗口,而且光标没有闪烁效果……(反正就是有很多乱七八糟的问题)这是怎么回事?
好吧,如果不想看上面的就看范例吧,搜索“#added” 是我添加的内容。
Project3.zip (201.01 KB, 下载次数: 28) 希望能有人解决……

点评

看了下工程、、、、不明白楼主想做成什么样的  发表于 2013-7-27 21:54

Lv2.观梦者

梦石
0
星屑
555
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
6
发表于 2013-8-2 15:40:11 | 只看该作者
粗看了一下,感觉就是没update的后果。

点评

不是已经在update方法里添加了一些内容吗?  发表于 2013-8-2 20:47
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

5
发表于 2013-8-2 14:21:09 | 只看该作者
貌似俺游戏中写了个类似的功能,您想要的是不是这种效果?


是的话俺就照着这个效果修改了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
4
 楼主| 发表于 2013-7-30 09:12:30 | 只看该作者
wwwcctvty 发表于 2013-7-27 21:34
@window_help.visible = false if @window_help 什么意思呀?表示看不懂 if @window_help,,,,求高手解 ...


选择逃跑选项后开始选择角色。(这个没有弄出来,好像跳过了这个方法似的)
选择完角色后弹出两个窗口:
左边是命令窗口(WINDOW_COMMAND),右边是文字窗口
但是上面的帮助窗口明明visible设为false了却仍有显示……
命令窗口的选项第一个为“属性”,其他的为角色当前的状态
文字窗口显示的文字随命令窗口的光标的改变而改变。

2.jpg (254.01 KB, 下载次数: 1)

2.jpg

2.jpg (144.17 KB, 下载次数: 2)

2.jpg
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
3
 楼主| 发表于 2013-7-29 11:07:30 手机端发表。 | 只看该作者
没有高手帮忙吗?
就是说有好多问题,比如明明调用了方法却貌似没用,设置了visiable和active属性却没效果等等。。。。求帮忙啊,。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
2
发表于 2013-7-27 21:34:29 | 只看该作者
@window_help.visible = false if @window_help 什么意思呀?表示看不懂 if @window_help,,,,求高手解答话说看到好多全局变量哦

点评

至于那个全局变量,因为我需要在一个类中的方法里,判定另一个类的变量,自然不能用实变量只能用全局变量了。  发表于 2013-7-30 08:55
因为有的时候运行到这里的时候@window_help还显示着,但是如果直接@window_help.visible = false有时@window_help又没显示,即nil,nil自然没有visible这个变量了。  发表于 2013-7-30 08:54
这个是在Scene_Battle里的,@window_help 是 Help_Window的实例。  发表于 2013-7-30 08:52
当@window_help不为false或nil时,@window_help的visible变量为false。  发表于 2013-7-30 08:50
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-28 16:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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