Project1

标题: 如何让角色在菜单界面 改为显示战斗图 [打印本页]

作者: c21c21    时间: 2023-7-30 14:35
标题: 如何让角色在菜单界面 改为显示战斗图
如何让角色在菜单界面 不显示行走图 而是显示战斗图?
自己按下图这样改了一下 现在已经变成战斗图了
但是因为战斗图过大所以显示不全 有没有办法缩小一点比例?
javascript:;

无标题.png (46.14 KB, 下载次数: 9)

无标题.png

作者: 忧雪の伤    时间: 2023-7-30 18:21
本帖最后由 忧雪の伤 于 2023-7-30 18:24 编辑

UI> 我仍然更加推荐使用外部工具如Photoshop对资源进行处理并直接表现在游戏里,而不使用代码进行缩放

  1. class Window_Base
  2.   def draw_actor_graphic(actor, x, y)
  3.     bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
  4.     cw = bitmap.width
  5.     ch = bitmap.height
  6.     # dw, dh 后面的数字即是缩小的倍数
  7.     dw = bitmap.width / 3
  8.     dh = bitmap.height / 3
  9.     dest_rect = Rect.new(x - dw / 2, y - dh, dw, dh)
  10.     src_rect = Rect.new(0, 0, cw, ch)
  11.     self.contents.stretch_blt(dest_rect, bitmap, src_rect)
  12.   end
  13. end
复制代码



作者: c21c21    时间: 2023-7-30 18:32
忧雪の伤 发表于 2023-7-30 18:21
UI> 我仍然更加推荐使用外部工具如Photoshop对资源进行处理并直接表现在游戏里,而不使用代码进行缩放

感谢大佬 成功了
这次主要是因为战斗图在战斗界面也要用到
直接把图调小 战斗界面就会很奇怪了
作者: 忧雪の伤    时间: 2023-7-30 18:34
本帖最后由 忧雪の伤 于 2023-7-30 18:36 编辑
c21c21 发表于 2023-7-30 18:32
感谢大佬 成功了
这次主要是因为战斗图在战斗界面也要用到
直接把图调小 战斗界面就会很奇怪了 ...


UI> 对于这个问题,你应该划分开2个不同的资源组,然后战斗图缩小的那个用在这,原来的用在战斗里,不要共用就行

补充:我刚考虑到还有一种情况就是可能想要极致压缩包体,那用代码缩在这种情况下不失为选择
作者: 契约师Vi    时间: 2023-8-8 20:12
定义新的战斗图,def draw_actor_graphicNew(actor, x, y)然后在菜单显示就行了,这样的话,战斗和菜单两个互不相干
作者: 爆焰    时间: 2023-8-25 02:20
直接插入,自己改坐标即可。

  1. class Window_Base
  2.   def draw_battler_graphic(actor, x, y)
  3.     battler=RPG::Cache.battler(actor.battler_name, actor.battler_hue)
  4.     w = battler.width
  5.     h = battler.height
  6.     self.contents.blt(x-w/2, y-h, battler, Rect.new(0, 0, w,h),255)
  7.   end
  8. end
  9. class Window_MenuStatus < Window_Selectable
  10.   def refresh
  11.     self.contents.clear
  12.     @item_max = $game_party.actors.size
  13.     for i in 0...$game_party.actors.size
  14.       x = 64
  15.       y = i * 116
  16.       actor = $game_party.actors[i]
  17.       if (i % 2) == 0
  18.         draw_battler_graphic(actor, x - 5, y + 95 - i * 0)
  19.         draw_actor_name(actor, x+50, y)
  20.         draw_actor_class(actor, x + 144+50, y)
  21.         draw_actor_level(actor, x+50, y + 32)
  22.         draw_actor_state(actor, x + 90+40, y + 32)
  23.         draw_actor_exp(actor, x+50, y + 64)
  24.         draw_actor_hp(actor, x + 236, y + 32)
  25.         draw_actor_sp(actor, x + 236, y + 64)
  26.       else
  27.         draw_battler_graphic(actor, x - 5, y + 95 - i * 0)
  28.         draw_actor_name(actor, x+50, y)
  29.         draw_actor_class(actor, x +144+50, y)
  30.         draw_actor_level(actor, x+50, y + 32)
  31.         draw_actor_state(actor, x + 90+40, y + 32)
  32.         draw_actor_exp(actor, x+50, y + 64)
  33.         draw_actor_hp(actor, x + 236, y + 32)
  34.         draw_actor_sp(actor, x + 236, y + 64)
  35.       end
  36.     end
  37.   end
  38. end
复制代码





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