Project1

标题: 一个战斗画面的问题求解 [打印本页]

作者: KT猫    时间: 2008-4-12 22:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: KT猫    时间: 2008-4-12 22:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-12 22:20
都是要修改坐标,请把相关脚本发上来 ,谢谢

作者: KT猫    时间: 2008-4-12 22:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-12 22:36
{/jy}关于战斗的脚本哦
作者: KT猫    时间: 2008-4-12 22:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-12 22:54
45°的那个脚本
作者: KT猫    时间: 2008-4-12 23:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-13 00:07
脚本修改完毕:

  1. # ————————————————————————————————————
  2. # 本脚本来自www.66rpg.com,转载请保留此信息
  3. # ————————————————————————————————————

  4. #==============================================================================
  5. # ■ Game_Actor
  6. #------------------------------------------------------------------------------
  7. #  处理角色的类。本类在 Game_Actors 类 ($game_actors)
  8. # 的内部使用、Game_Party 类请参考 ($game_party) 。
  9. #==============================================================================

  10. class Game_Actor < Game_Battler
  11. #--------------------------------------------------------------------------
  12. # ● 取得战斗画面的 X 坐标
  13. #--------------------------------------------------------------------------
  14. def screen_x
  15. case self.index
  16. when 0
  17.   return 500
  18. when 1
  19.   return 580
  20. when 2
  21.   return 510
  22. when 3
  23.   return 580
  24. else
  25.   return 600

  26. end
  27. end
  28. #--------------------------------------------------------------------------
  29. # ● 取得战斗画面的 Y 坐标
  30. #--------------------------------------------------------------------------
  31. def screen_y
  32. case self.index
  33. when 0
  34.   return 435
  35. when 1
  36.   return 380
  37. when 2
  38.   return 360
  39. when 3
  40.   return 325
  41. else
  42.   return 1000
  43. end
  44. end
  45. #--------------------------------------------------------------------------
  46. # ● 取得战斗画面的 Z 坐标
  47. #--------------------------------------------------------------------------
  48. def screen_z
  49. case self.index
  50. when 0
  51.   return 10
  52. when 1
  53.   return 9
  54. when 2
  55.   return 8
  56. when 3
  57.   return 7
  58. else
  59.   return 0
  60.   end
  61. end
  62. end


  63. #==============================================================================
  64. # ■ Window_Base
  65. #------------------------------------------------------------------------------
  66. #  游戏中全部窗口的超级类。
  67. #==============================================================================

  68. class Window_Base < Window
  69. #--------------------------------------------------------------------------
  70. # ● 描绘 HP
  71. #     actor : 角色
  72. #     x     : 描画目标 X 坐标
  73. #     y     : 描画目标 Y 坐标
  74. #     width : 描画目标的宽
  75. #--------------------------------------------------------------------------
  76. def draw_actor_hp1(actor, x, y, width = 72)

  77.   # 计算描绘 MaxHP 所需的空间
  78.   if width - 24 >= 32
  79.     hp_x = x # + width - 24
  80.   end
  81.   # 描绘 HP
  82.   self.contents.font.color = actor.hp == 0 ? knockout_color :
  83.     actor.hp <= actor.maxhp / 4 ? crisis_color : Color.new(255,-255,-255,255)
  84.   self.contents.draw_text( x , 396 , 64, 24, actor.hp.to_s, 2)
  85. end
  86. #--------------------------------------------------------------------------
  87. # ● 描绘 SP
  88. #     actor : 角色
  89. #     x     : 描画目标 X 坐标
  90. #     y     : 描画目标 Y 坐标
  91. #     width : 描画目标的宽
  92. #--------------------------------------------------------------------------
  93. def draw_actor_sp1(actor, x, y, width = 72)

  94.   # 计算描绘 MaxSP 所需的空间
  95.   if width - 24 >= 32
  96.     sp_x = x + 32# + width - 24
  97.   end
  98.   # 描绘 SP
  99.   self.contents.font.color = actor.sp == 0 ? knockout_color :
  100.     actor.sp <= actor.maxsp / 4 ? crisis_color : Color.new(-255,-255,255,255)
  101.   self.contents.draw_text(  x, 416, 64, 24, actor.sp.to_s, 2)
  102. end
  103. end


  104. #==============================================================================
  105. # ■ Window_BattleStatus
  106. #------------------------------------------------------------------------------
  107. #  显示战斗画面同伴状态的窗口。
  108. #==============================================================================

  109. class Window_BattleStatus < Window_Base
  110. #--------------------------------------------------------------------------
  111. # ● 初始化对像
  112. #--------------------------------------------------------------------------
  113. #$data_system_level_up_me = "Audio/ME/升级音乐"
  114. def initialize
  115.   super(0, 0, 640, 480)
  116.   self.contents = Bitmap.new(width - 10, height - 32)
  117.   self.opacity = 0
  118.    self.contents.font.name = "Arial Black"
  119.   @level_up_flags = [false, false, false, false]
  120.   refresh
  121. end
  122. #--------------------------------------------------------------------------
  123. # ● 释放
  124. #--------------------------------------------------------------------------
  125. def dispose
  126.   super
  127. end
  128. #--------------------------------------------------------------------------
  129. # ● 设置升级标志
  130. #     actor_index : 角色索引
  131. #--------------------------------------------------------------------------
  132. def level_up(actor_index)
  133.   @level_up_flags[actor_index] = true
  134. end
  135. #--------------------------------------------------------------------------
  136. # ● 刷新
  137. #--------------------------------------------------------------------------
  138. def refresh
  139.   self.contents.clear
  140.   @item_max = $game_party.actors.size
  141.    for i in 0...$game_party.actors.size
  142.      actor = $game_party.actors[i]
  143.      
  144.      x = i * 150
  145.      a = actor.id.to_s + "_b"
  146.      bitmap=Bitmap.new("Graphics/pictures/#{a}")  
  147.      src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  148.      self.contents.blt(0 + x , 340, bitmap, src_rect)
  149.      
  150.      
  151.      if @level_up_flags[i]
  152.       self.contents.font.color = normal_color
  153.       self.contents.draw_text(x, y, 120, 24, "LEVEL UP!")
  154.       Audio.me_stop
  155. #        Audio.me_play($data_system_level_up_me)
  156.     else
  157.    
  158.     self.contents.font.color = Color.new(255 , -255 ,-255 ,255 )
  159.     draw_actor_hp1(actor, x-122, y+10, 80)
  160.     self.contents.font.color = Color.new(-255 , -255 ,255 ,255 )
  161.     draw_actor_sp1(actor, x-132, y+29, 80)
  162.    end
  163.   end
  164. end

  165. #--------------------------------------------------------------------------
  166. # ● 刷新画面
  167. #--------------------------------------------------------------------------
  168. def update
  169.   super
  170.   # 主界面的不透明度下降
  171.   if $game_temp.battle_main_phase
  172.     self.contents_opacity -= 50 if self.contents_opacity > 1
  173.   else
  174.     self.contents_opacity += 50 if self.contents_opacity < 255
  175.   end
  176. end
  177. end





  178. #==============================================================================
  179. # ■ Window_BattleStatus
  180. #==============================================================================
  181. class Window_BattleStatus < Window_Base
  182. #--------------------------------------------------------------------------
  183. # ● 初始化
  184. #--------------------------------------------------------------------------
  185. alias xrxs_bp2_refresh refresh
  186. def refresh
  187.   xrxs_bp2_refresh
  188.   @item_max = $game_party.actors.size
  189.    for i in 0...$game_party.actors.size
  190.     actor = $game_party.actors[i]
  191.     case i
  192.       when 0
  193.        x = 250
  194.        y = 390
  195.       when 1
  196.        x = 390
  197.        y = 340
  198.       when 2
  199.        x = 480
  200.        y = 300
  201.       when 3
  202.        x = 550
  203.        y = 270
  204.      end
  205.    
  206.   end
  207. end
  208. end
  209. #==============================================================================
  210. # ■ Window_Base
  211. #==============================================================================
  212. class Window_Base < Window
  213. #--------------------------------------------------------------------------
  214. # ● HP描画
  215. #--------------------------------------------------------------------------
  216. def draw_actor_hp_meter(actor, x, y, width = 156, type = 0)
  217.   if type == 1 and actor.hp == 0
  218.     return
  219.   end
  220.   self.contents.font.color = system_color
  221.   self.contents.fill_rect(x, y, width+2,6, Color.new(0, 0, 0, 25))
  222.   w = width * actor.hp / actor.maxhp
  223.   self.contents.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  224.   self.contents.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  225.   self.contents.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  226.   self.contents.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))

  227.   end
  228. #--------------------------------------------------------------------------
  229. # ● SP描画
  230. #--------------------------------------------------------------------------
  231. def draw_actor_sp_meter(actor, x, y, width = 156, type = 0)
  232.   if type == 1 and actor.hp == 0
  233.     return
  234.   end
  235.   self.contents.font.color = system_color
  236.   self.contents.fill_rect(x, y, width+2,6, Color.new(0, 0, 0, 255))
  237.   w = width * actor.sp / actor.maxsp
  238.   self.contents.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  239.   self.contents.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  240.   self.contents.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  241.   self.contents.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  242. end
  243. end
复制代码


那个指令的图不是在这个脚本里改的。

坐标不是改的很好,因为没图。不好修改。大致就是这样的吧。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: KT猫    时间: 2008-4-13 00:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: KT猫    时间: 2008-4-13 00:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-13 00:16
就说了嘛,没图不怎么好修改。那么LZ自己去修改一下吧。

脚本91行
    self.contents.draw_text(x, 396 , 64, 24, actor.hp.to_s, 2)

这个X是HP的坐标,修改一下就OK。

脚本109行
    self.contents.draw_text(x, 416, 64, 24, actor.sp.to_s, 2)

这个X是MP的坐标,修改一下就OK。

脚本159行
   self.contents.blt( x , 340, bitmap, src_rect)

这个X是图的坐标,修改一下就OK。


[LINE]1,#FF3333[/LINE]

要改战斗菜单的话,把你的战斗菜单那个脚本发上来。上面的脚本改不了战斗菜单的。



作者: KT猫    时间: 2008-4-13 00:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-13 00:28
嘛?怎么总是要QQ呢?
277650897


作者: KT猫    时间: 2008-4-13 00:36
提示: 作者被禁止或删除 内容自动屏蔽
作者: KT猫    时间: 2008-4-13 00:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-13 00:38
那就这样吧。你把脚本要用的图片打包上传,我来帮你改。
作者: KT猫    时间: 2008-4-13 00:40
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-13 00:43
我连QQ都没开,还有就是现在我的QQ不是我在用,呵呵 ,等一下吧。
作者: KT猫    时间: 2008-4-13 00:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-4-13 00:49
OK




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