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

Project1

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

[已经过期] Window_Help的文字内容有时候不更新

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
119 小时
注册时间
2008-3-10
帖子
42
跳转到指定楼层
1
发表于 2011-9-28 02:24:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我仿照特技界面做了一个“技能界面”,内容完全是照搬特技界面的,但是去掉了技能使用的功能,而只有移动光标查看技能描述的作用。(准备把特技系统换成技能系统)
现在的问题是,比如说当前光标的index 是0,移动到index 1的时候,Window_Help的文字内容能够更新到index 1;但把光标移回index 0,Window_Help还是显示index 1的内容。此时如果把光标移动到index 2,那么再移回index0 和1都是显示index 2的help。

工程文件太大,而且修改的地方也比较多了,就不上传了。如果有哪位大大碰巧遇到过类似的问题,就请说下当时的原因吧~没有的话我就自己继续慢慢找原因了……

应该是去掉技能使用的功能时误删了无关的功能吧……

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

2
发表于 2011-9-28 05:43:46 | 只看该作者
阁下确定你的脚本是这样吗?
  1. #==============================================================================
  2. # ■ Scene_ShowSkill
  3. #------------------------------------------------------------------------------
  4. #  显示技能画面的类。
  5. #==============================================================================

  6. class Scene_ShowSkill < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     actor_index : 角色位置
  10.   #--------------------------------------------------------------------------
  11.   def initialize(actor_index = 0, equip_index = 0)
  12.     @actor_index = actor_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 开始处理
  16.   #--------------------------------------------------------------------------
  17.   def start
  18.     super
  19.     create_menu_background
  20.     @actor = $game_party.members[@actor_index]
  21.     @viewport = Viewport.new(0, 0, 544, 416)
  22.     @help_window = Window_Help.new
  23.     @help_window.viewport = @viewport
  24.     @status_window = Window_SkillStatus.new(0, 56, @actor)
  25.     @status_window.viewport = @viewport
  26.     @skill_window = Window_Skill.new(0, 112, 544, 304, @actor)
  27.     @skill_window.viewport = @viewport
  28.     @skill_window.help_window = @help_window
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 结束处理
  32.   #--------------------------------------------------------------------------
  33.   def terminate
  34.     super
  35.     dispose_menu_background
  36.     @help_window.dispose
  37.     @status_window.dispose
  38.     @skill_window.dispose
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 回到原画面
  42.   #--------------------------------------------------------------------------
  43.   def return_scene
  44.     $scene = Scene_Menu.new(1)
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 切换至下一角色画面
  48.   #--------------------------------------------------------------------------
  49.   def next_actor
  50.     @actor_index += 1
  51.     @actor_index %= $game_party.members.size
  52.     $scene = Scene_Skill.new(@actor_index)
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 切换至上一角色画面
  56.   #--------------------------------------------------------------------------
  57.   def prev_actor
  58.     @actor_index += $game_party.members.size - 1
  59.     @actor_index %= $game_party.members.size
  60.     $scene = Scene_Skill.new(@actor_index)
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● 更新画面
  64.   #--------------------------------------------------------------------------
  65.   def update
  66.     super
  67.     update_menu_background
  68.     @help_window.update
  69.     @status_window.update
  70.     @skill_window.update
  71.     if @skill_window.active
  72.       update_skill_selection
  73.     elsif @target_window.active
  74.       update_target_selection
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 更新技能选择
  79.   #--------------------------------------------------------------------------
  80.   def update_skill_selection
  81.     if Input.trigger?(Input::B)
  82.       Sound.play_cancel
  83.       return_scene
  84.     elsif Input.trigger?(Input::R)
  85.       Sound.play_cursor
  86.       next_actor
  87.     elsif Input.trigger?(Input::L)
  88.       Sound.play_cursor
  89.       prev_actor
  90.     end
  91.   end
  92. end
复制代码
找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
265
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

3
发表于 2011-9-28 07:30:21 | 只看该作者
如果只是要去掉使用功能,把对于按键的处理修改一下就好了,其他的什么都不用动~
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复

使用道具 举报

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6062
在线时间
6586 小时
注册时间
2007-12-16
帖子
4501

贵宾

4
发表于 2011-9-28 13:33:22 | 只看该作者
需要一个update或clear
RM不在手边,指令拼不全

还在龟速填坑中
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
119 小时
注册时间
2008-3-10
帖子
42
5
 楼主| 发表于 2011-9-29 00:20:47 | 只看该作者
我找到原因了。因为我在Window_Base中自定义了一个“可以换行的draw_text”方法,然后在Window_Help中使用了它。这个方法在引用的时候会把作为参数传入的字符串的值给改掉,结果再次访问这个被改掉的字符串,当然就出问题了。

现在我加入了 “long_text = value.clone”这一行,那么就不会出这个问题了。

这个方法本身……恩……还很有改进的余地,哈哈哈哈
  1.   #--------------------------------------------------------------------------
  2.   # ● 可以换行的draw_text
  3.   #     value : 文字
  4.   #     x     : 描画目标 X 坐标
  5.   #     y     : 描画目标 Y 坐标
  6.   #     width : 描画目标宽度
  7.   #--------------------------------------------------------------------------
  8.   def draw_long_text(value, x, y, width)
  9.    
  10.     self.contents.font.color = normal_color
  11.     yyy = []
  12.     zzz = []
  13.     lines = 1
  14.     long_text = value.clone

  15.     loop do
  16.       if long_text.index("\n") == nil
  17.         zzz[lines] = long_text
  18.         break
  19.       end
  20.       yyy[lines] = long_text.index("\n")
  21.       zzz[lines] = long_text.slice!(0,yyy[lines])
  22.       long_text = long_text.slice!(1,long_text.size-1)
  23.       lines += 1
  24.     end

  25.     for i in 1..lines
  26.       self.contents.draw_text(x, y + (i-1) * 32, width, WLH, zzz[i])
  27.     end

  28.   end
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-12 01:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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