Project1

标题: 战斗选项时显示对应人物图像 [打印本页]

作者: hijl1990    时间: 2014-5-27 10:56
标题: 战斗选项时显示对应人物图像
问题是 我想在选项时,在右下角显示对应的角色半身像,我已经把战斗选项给固定在了右下角。

我是在默认系统上改的,改动如下,可效果不好。有谁能教下我吗?

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================
  6.  
  7. class Window_BattleStatus < Window_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对像
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     super(0, 320, 640, 160)
  13.     self.opacity = 0  
  14.     self.contents = Bitmap.new(width - 32, height - 32)
  15.     @level_up_flags = [false, false, false, false]
  16.     refresh
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 释放
  20.   #--------------------------------------------------------------------------
  21.   def dispose
  22.     super
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 设置升级标志
  26.   #     actor_index : 角色索引
  27.   #--------------------------------------------------------------------------
  28.   def level_up(actor_index)
  29.     @level_up_flags[actor_index] = true
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 刷新
  33.   #--------------------------------------------------------------------------
  34.   def refresh
  35.     self.contents.clear
  36.     @item_max = $game_party.actors.size
  37.     for i in 0...$game_party.actors.size
  38. lihui = Sprite.new # 新生成一个 Sprite 类的实例
  39. lihui.bitmap = Bitmap.new("Graphics/Pictures/"+i.to_s) # 是读取文件夹中所含的图片文件
  40. lihui.x = 500 #设置x坐标
  41. lihui.y = 200 #设置y坐标
  42.       actor = $game_party.actors[i]
  43.       actor_x = i * 160 + 4
  44.       draw_actor_name(actor, actor_x, 0)
  45.       draw_actor_hp(actor, actor_x, 32, 120)
  46.       draw_actor_sp(actor, actor_x, 64, 120)
  47.       if @level_up_flags[i]
  48.         self.contents.font.color = normal_color
  49.         self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
  50.       else
  51.         draw_actor_state(actor, actor_x, 96)
  52.       end
  53.     end
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 刷新画面
  57.   #--------------------------------------------------------------------------
  58.   def update
  59.     super
  60.     # 主界面的不透明度下降
  61.     if $game_temp.battle_main_phase
  62.       self.contents_opacity -= 4 if self.contents_opacity > 191
  63.     else
  64.       self.contents_opacity += 4 if self.contents_opacity < 255
  65. Graphics.update#新加
  66.     end
  67.   end
  68. end


然后现在情况是选项时没显示图片。


然后全部选择好后,图片一口气全出来了。


请大大们指点。。
作者: hijl1990    时间: 2014-5-27 12:34
1064593631 发表于 2014-5-27 12:18
能把你的战斗菜单脚本分享一个吗     第一张图片战斗菜单

这是默认系统。。我只是插入了一张图片和移动了选项位置而已。
作者: taroxd    时间: 2014-5-27 13:09
我不玩XP,下面只是一些小建议
1. 选项菜单窗口应该不是 Window_BattleStatus 。请仔细找找这个窗口
2. 在选项菜单窗口生成的时候获取当前角色并创建精灵,设定位图。在选项菜单窗口释放的时候释放位图和精灵。
不要每一次 refresh 都创建一个精灵并显示图片
作者: kakarot    时间: 2014-5-28 04:04
LZ在刷新里写的循环就是一口气显示所有图像的
只依靠战斗状态窗口的话好像没法直接获取当前行动的角色吧?
建议直接重新定义一个窗口类然后在Scene_Battle里调用,判定当前行动角色可以试试用Scene_Battle 3里的@active_battler
P.S. 其实直接把立绘铺开了摆在状态窗口里不好么?
作者: hijl1990    时间: 2014-5-29 11:05
1064593631 发表于 2014-5-28 20:54
我就是想移动选项位置 ,我不会。  把你脚本发个吧

那啥,为什么要在我的提问贴里提问呢?

如果只是修改选项位置的话可以在Scene_Battle 3里的● 设置角色指令窗口里改。。

    # 设置角色指令窗口的位置
    @actor_command_window.x =@actor_index * 160#这个是X坐标,直接指点位置就好
再加一句Y坐标位置
    @actor_command_window.y = ??#数值直接写,如果不加也可以进Scene_Battle 1里改。。





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1