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

Project1

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

利用Window_Help说事情

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
62
在线时间
1 小时
注册时间
2008-1-4
帖子
260
跳转到指定楼层
1
发表于 2009-3-9 22:27:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
   如标题,我想制作大图片模式的物品解释系统
Window_Help是特技及物品的说明、角色的状态显示的窗口
所以我想,如果我新写一个window_help_new让这个窗口一边显示文字一边显示对应
装备的图片可行不?
   问题是我添加了个def refresh并定义了图片在window_help_new里面,可是显示不出来,求教高手~


    另外求一个仿制网游装备栏的脚本。


一个普通的windowhelp而已,想在里面加

  1. #==============================================================================
  2. # ■ Window_Help
  3. #------------------------------------------------------------------------------
  4. #  特技及物品的说明、角色的状态显示的窗口。
  5. #==============================================================================

  6. class Window_Help_Icon < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     #super(0, 0, 640, 64)
  12.     super(0+320+64+64+15, 0+64, 640-480, 64*7-64-64)
  13.     #super(0, 0, 640/10*2, 64+100+100)
  14.      #self.opacity = 220#新加
  15.    
  16.       self.contents = Bitmap.new(width - 32, height - 32)
  17.      self.opacity = 0#新加
  18.       
  19.      
  20.   end
  21.    


  22.   
  23.     #-------------------------------------
  24.   
  25.   #----------------------------为止
  26.   
  27.   
  28.   
  29.   #--------------------------------------------------------------------------
  30.   # ● 设置文本
  31.   #     text  : 窗口显示的字符串
  32.   #     align : 对齐方式 (0..左对齐、1..中间对齐、2..右对齐)
  33.   #--------------------------------------------------------------------------
  34.   def set_text(text, align = 0)
  35.     # 如果文本和对齐方式的至少一方与上次的不同
  36.     if text != @text or align != @align
  37.       # 再描绘文本
  38.       self.contents.clear
  39.       self.contents.font.color = normal_color
  40.       #self.contents.draw_text(4, 0, 640/10*2, 64+100+100, text, align)
  41.       
  42.        self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  43.       @text = text
  44.       @align = align
  45.       @actor = nil
  46.     end
  47.     self.visible = true
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 设置角色
  51.   #     actor : 要显示状态的角色
  52.   #--------------------------------------------------------------------------
  53.   def set_actor(actor)
  54.     if actor != @actor
  55.       self.contents.clear
  56.       draw_actor_name(actor, 4, 0)
  57.       draw_actor_state(actor, 140, 0)
  58.       draw_actor_hp(actor, 284, 0)
  59.       draw_actor_sp(actor, 460, 0)
  60.       @actor = actor
  61.       @text = nil
  62.       self.visible = true
  63.     end
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 设置敌人
  67.   #     enemy : 要显示名字和状态的敌人
  68.   #--------------------------------------------------------------------------
  69.   def set_enemy(enemy)
  70.     text = enemy.name
  71.     state_text = make_battler_state_text(enemy, 112, false)
  72.     if state_text != ""
  73.       text += "  " + state_text
  74.     end
  75.     set_text(text, 1)
  76.   end
  77. end
复制代码


附带工程
http://rpg.blue/upload_program/d/bububinghe_myrpg_117058618.rar
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

10
发表于 2009-3-10 04:20:35 | 只看该作者
关键就在于这3句,其实是显示了一个图标~

  1. t = RPG::Cache.icon("skill_#{$1}")
  2. self.contents.blt(x, 32 * y, t, t.rect)
  3. t.dispose
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
62
在线时间
1 小时
注册时间
2008-1-4
帖子
260
9
 楼主| 发表于 2009-3-10 04:20:04 | 只看该作者
以下引用小湖于2009-3-9 20:18:22的发言:

其实用http://rpg.blue/web/htm/news584.htm里的set_text方法代替你的set_text方法就可以了,然后用\s[XXX]来显示Icons菜单下面的skill_XXX.png图片~

我做了略微修改

   本帖相关代码如下:
def set_text(text, align = 0)
   # 当文字不同时刷新
   if text != @text_old
     self.contents.clear
     self.contents.font.color = Color.new(0, 0, 0, 255)
     # 记录文字
     @text_old = text.clone
     @text = text.clone
     x = 16
     y = 1
     begin
       last_text = @text.clone
       @text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
     end until @text == last_text
     @text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
       $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
     end
     @text.gsub!(/\\\\/) { "\000" }
     @text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
     @text.gsub!(/\\[Nn]/) { "\002" }
     @text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
     while ((c = @text.slice!(/./m)) != nil)
       if c == "\000"
         c = "\\"
       end
       if c == "\001"
         @text.sub!(/\[([0-9]+)\]/, "")
         color = $1.to_i
         if color >= 0 and color <= 7
           self.contents.font.color = text_color(color)
         end
         next
       end
       if c == "\002"
         y += 1
         x = 16
         next
       end
       if c == "\003"
         @text.sub!(/\[([0-9]+)\]/, "")
         t = RPG::Cache.icon("skill_#{$1}")
         self.contents.blt(x, 32 * y, t, t.rect)
         t.dispose
         next
       end
       self.contents.font.size = 16
       self.contents.draw_text(4 + x, 26 * y, 40, 32, c)
       x += self.contents.text_size(c).width
       if x >= 160
         y += 1
         x = 16
       end
     end
   end
   self.visible = true
end



这就去研究下,附件以上传2M多,麻烦你下来看下具体情况吧~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

8
发表于 2009-3-10 04:18:22 | 只看该作者
其实用http://rpg.blue/web/htm/news584.htm里的set_text方法代替你的set_text方法就可以了,然后用\s[XXX]来显示Icons菜单下面的skill_XXX.png图片~

我也用的这个,但是我做了略微修改,你要用的话文字大小,位置几处要修改下~
  1.   def set_text(text, align = 0)
  2.     # 当文字不同时刷新
  3.     if text != @text_old
  4.       self.contents.clear
  5.       self.contents.font.color = Color.new(0, 0, 0, 255)
  6.       # 记录文字
  7.       @text_old = text.clone
  8.       @text = text.clone
  9.       x = 16
  10.       y = 1
  11.       begin
  12.         last_text = @text.clone
  13.         @text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  14.       end until @text == last_text
  15.       @text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  16.         $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  17.       end
  18.       @text.gsub!(/\\\\/) { "\000" }
  19.       @text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  20.       @text.gsub!(/\\[Nn]/) { "\002" }
  21.       @text.gsub!(/\\[Ss]\[([0-9]+)\]/) { "\003[#{$1}]" }
  22.       while ((c = @text.slice!(/./m)) != nil)
  23.         if c == "\000"
  24.           c = "\\"
  25.         end
  26.         if c == "\001"
  27.           @text.sub!(/\[([0-9]+)\]/, "")
  28.           color = $1.to_i
  29.           if color >= 0 and color <= 7
  30.             self.contents.font.color = text_color(color)
  31.           end
  32.           next
  33.         end
  34.         if c == "\002"
  35.           y += 1
  36.           x = 16
  37.           next
  38.         end
  39.         if c == "\003"
  40.           @text.sub!(/\[([0-9]+)\]/, "")
  41.           t = RPG::Cache.icon("skill_#{$1}")
  42.           self.contents.blt(x, 32 * y, t, t.rect)
  43.           t.dispose
  44.           next
  45.         end
  46.         self.contents.font.size = 16
  47.         self.contents.draw_text(4 + x, 26 * y, 40, 32, c)
  48.         x += self.contents.text_size(c).width
  49.         if x >= 160
  50.           y += 1
  51.           x = 16
  52.         end
  53.       end
  54.     end
  55.     self.visible = true
  56.   end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
62
在线时间
1 小时
注册时间
2008-1-4
帖子
260
7
 楼主| 发表于 2009-3-10 04:11:23 | 只看该作者
以下引用小湖于2009-3-9 20:00:27的发言:

其实就是在help窗口中加入图片咯?
那可以参考:http://rpg.blue/web/htm/news584.htm
里面的\s[]就是可以添加图片的~



工程正在上传,麻烦等下,谢谢~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

6
发表于 2009-3-10 04:00:27 | 只看该作者
其实就是在help窗口中加入图片咯?
那可以参考:http://rpg.blue/web/htm/news584.htm
里面的\s[]就是可以添加图片的~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
62
在线时间
1 小时
注册时间
2008-1-4
帖子
260
5
 楼主| 发表于 2009-3-10 03:41:25 | 只看该作者
以下引用小湖于2009-3-9 19:36:47的发言:

你好像是新建了一个类Window_Help_Icon,不过好像和Window_Help一样么……

如果是装备大图可以参考这个:
http://rpg.blue/web/htm/news279.htm



楼上貌似是误解了,不过我的确是要大图但是模式是这样的

左边:人物装备栏5*2的格子
右边:装备大图+文字描述
装备栏里当然是小图标,代表物品在你的包包里,当鼠标经过格子里的小图标即装备的时候,右边的大图呈现出对应的大图标武器以及相关的文字描述~

以上~~ 如果需要我的工程我可以做一个上传~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

4
发表于 2009-3-10 03:36:47 | 只看该作者
你好像是新建了一个类Window_Help_Icon,不过好像和Window_Help一样么……

如果是装备大图可以参考这个:
http://rpg.blue/web/htm/news279.htm
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
62
在线时间
1 小时
注册时间
2008-1-4
帖子
260
3
 楼主| 发表于 2009-3-10 02:34:17 | 只看该作者
以下引用小湖于2009-3-9 16:53:27的发言:

你把你的window_help_new贴出来看一下~

见标题~贴好了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

2
发表于 2009-3-10 00:53:27 | 只看该作者
你把你的window_help_new贴出来看一下~{/wx}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-17 05:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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