查看: 1937|回复: 5

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

[复制链接]
梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
回帖
146
发表于 2013-7-27 21:23:28 | 显示全部楼层 |阅读模式

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

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

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

想弄个在战斗中显示状态信息的东西。
先追加了类:
[pre lang="ruby" line="1"]class Window_State < Window_Base
  def initialize
    super(160,0,480,320)
    self.opacity = 160
    self.back_opacity = 160
    self.contents = Bitmap.new(384,256)
  end
  def make_text
    for i in 0..$show_state_choose.index
      case $show_state_choose.commands
      when "战斗不能"
        a = "\\C[2]名称:战斗不能"
        b = "效果:\\n因受重伤而不能行动,若战斗结束时仍然处于此状态,\\n将无法获得战斗经验。"      
      else
        a = "aaaaaaaa"
        b = "bbbbbbbb"
      end
      end
      self.contents.draw_text(16,16,224,32,a)
      self.contents.draw_text(16,48,224,32,b)
    end
    end
class Window_Command < Window_Selectable
  attr_accessor :commands
end[/pre]


然后在Scene_Battle里添加了:


[pre lang="ruby" line="1"]def state_start
     @window_help.visible = false if @window_help
           @party_command_window.active = false
           @party_command_window.visible = false
           start_actor_select
         if Input.trigger?(Input::C)
           $arrow_index =  @actor_arrow.actor
           end_actor_select
           $states = ["属性"]
           for i in $arrow_index.states
             $states.push($data_states.name.to_s)
           end
           $show_state_choose = Window_Command.new(160,$states)
           $show_state_choose.opacity = 160
           $show_state_choose.back_opacity = 160
           $show_state_choose.active = true
           $show_state_choose.height = 320
           @state_window = Window_State.new      
          end
      end
   
      def state_do
      if Input.trigger?(Input::B)
       $show_state_choose.active = false
       $show_state_choose.visible = false
       @window_help.visible = true if @window_help
       @party_command_window.active = true
       @party_command_window.visible = true
       @state_window.visible = false
     end
     @state_window.make_text
    end[/pre]

将原来的Scene_Battle2中,方法update_phase2中,“when 1 ”的分支改为了
[pre lang="ruby" line="1"]$game_system.se_play($data_system.decision_se)
        state_start[/pre]

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

点评

看了下工程、、、、不明白楼主想做成什么样的  发表于 2013-7-27 21:54
梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
回帖
711
发表于 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
回复

使用道具 举报

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
回帖
146
 楼主| 发表于 2013-7-29 11:07:30 来自手机 | 显示全部楼层
没有高手帮忙吗?
就是说有好多问题,比如明明调用了方法却貌似没用,设置了visiable和active属性却没效果等等。。。。求帮忙啊,。
回复

使用道具 举报

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


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

2.jpg
2.jpg
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2013-8-2 14:21:09 | 显示全部楼层
貌似俺游戏中写了个类似的功能,您想要的是不是这种效果?
222.jpg
111.jpg
是的话俺就照着这个效果修改了。
回复

使用道具 举报

梦石
0
星屑
660
在线时间
1286 小时
注册时间
2011-6-14
回帖
3949
发表于 2013-8-2 15:40:11 | 显示全部楼层
粗看了一下,感觉就是没update的后果。

点评

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

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部