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

Project1

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

战斗时血槽挡住了图片

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
跳转到指定楼层
1
发表于 2009-2-10 05:25:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
战斗时需要用图片显示头像,但是这个人物血槽老是在头像前面显示
怎么改啊??
图片血槽如下

  1. #图片血槽显示Ver 1.0(清爽版)
  2. #              by逐月

  3. #描画HP槽
  4. def HP (actor,x,y)         
  5. @bitmap3 = Bitmap.new("Graphics/Pictures/底")
  6. @src_rect3 = Rect.new(0,0,@bitmap3.width, @bitmap3.height)
  7. self.contents.blt(x,y, @bitmap3, @src_rect3)
  8. #HP显示
  9. @bitmap3 = Bitmap.new("Graphics/Pictures/hp")
  10. w3 = @bitmap3.width * actor.hp/actor.maxhp
  11. @src_rect3 = Rect.new(0,0,w3, @bitmap3.height)
  12. self.contents.blt(x+4,y+2, @bitmap3, @src_rect3)
  13. end
  14. #描画SP槽
  15. def SP (actor,x,y)
  16. @bitmap1 = Bitmap.new("Graphics/Pictures/底")
  17. @src_rect1 = Rect.new(0,0,@bitmap1.width, @bitmap1.height)
  18. self.contents.blt(x,y, @bitmap1, @src_rect1)
  19. #SP显示           
  20. @bitmap1 = Bitmap.new("Graphics/Pictures/sp")
  21. w1 = @bitmap1.width * actor.sp/actor.maxsp
  22. @src_rect1 = Rect.new(0,0,w1, @bitmap1.height)
  23. self.contents.blt(x+4,y+2, @bitmap1, @src_rect1)
  24. end

  25. #==============================================================================
  26. # 45度战斗坐标
  27. #    来自 ikki
  28. #==============================================================================

  29. class Game_Actor < Game_Battler
  30.   #####################
  31.   #全体战斗者的X,Y篇幅
  32.   $X篇幅 = 150
  33.   $Y篇幅 = -20
  34. #--------------------------------------------------------------------------
  35. # ● 取得战斗画面的 X 坐标
  36. #--------------------------------------------------------------------------
  37. def screen_x
  38.    case self.index
  39.    when 0
  40.      return 350+$X篇幅
  41.      when 1
  42.        return 430+$X篇幅
  43.        when 2
  44.          return 510+$X篇幅
  45.          when 3
  46.            return 580+$X篇幅
  47.            else
  48.              return 600+$X篇幅
  49.              end
  50.             end
  51. #--------------------------------------------------------------------------
  52. # ● 取得战斗画面的 Y 坐标
  53. #--------------------------------------------------------------------------
  54. def screen_y
  55.    case self.index
  56.    when 0
  57.      return 430+$Y篇幅
  58.      when 1
  59.        return 400+$Y篇幅
  60.        when 2
  61.          return 360+$Y篇幅
  62.          when 3
  63.            return 320+$Y篇幅
  64.            else
  65.              return 1000+$Y篇幅
  66.              end
  67.             end
  68. #--------------------------------------------------------------------------
  69. # ● 取得战斗画面的 Z 坐标
  70. #--------------------------------------------------------------------------
  71. def screen_z
  72.    case self.index
  73.    when 0
  74.      return 10
  75.      when 1
  76.        return 9
  77.        when 2
  78.          return 8
  79.          when 3
  80.            return 7
  81.            else   
  82.              return 0   
  83.              end
  84.             end
  85. end
  86. #==============================================================================
  87. # ■ Spriteset_Battle
  88. #------------------------------------------------------------------------------
  89. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  90. # 的内部使用。
  91. #==============================================================================

  92. class Spriteset_Battle
  93.   #--------------------------------------------------------------------------
  94.   # ● 定义实例变量
  95.   #--------------------------------------------------------------------------
  96.   attr_reader   :viewport1                # 敌人方的显示端口
  97.   attr_reader   :viewport2                # 角色方的显示端口
  98.   #--------------------------------------------------------------------------
  99.   # ● 初始化变量
  100.   #--------------------------------------------------------------------------
  101.   def initialize
  102.     # 生成显示端口
  103.     @viewport1 = Viewport.new(0, 0, 640, 480)
  104.     @viewport2 = Viewport.new(0, 0, 640, 480)
  105.     @viewport3 = Viewport.new(0, 0, 640, 480)
  106.     @viewport4 = Viewport.new(0, 0, 640, 480)
  107.     @viewport2.z = 101
  108.     @viewport3.z = 200
  109.     @viewport4.z = 5000
  110.     # 生成战斗背景活动块
  111.     @battleback_sprite = Sprite.new(@viewport1)
  112.     # 生成敌人活动块
  113.     @enemy_sprites = []
  114.     for enemy in $game_troop.enemies.reverse
  115.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  116.     end
  117.     # 生成敌人活动块
  118.     @actor_sprites = []
  119.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  120.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  121.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  122.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  123.     # 生成天候
  124.     @weather = RPG::Weather.new(@viewport1)
  125.     # 生成图片活动块
  126.     @picture_sprites = []
  127.     for i in 51..100
  128.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  129.         $game_screen.pictures[i]))
  130.     end
  131.     # 生成计时器块
  132.     @timer_sprite = Sprite_Timer.new
  133.     # 刷新画面
  134.     update
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● 释放
  138.   #--------------------------------------------------------------------------
  139.   def dispose
  140.     # 如果战斗背景位图存在的情况下就释放
  141.     if @battleback_sprite.bitmap != nil
  142.       @battleback_sprite.bitmap.dispose
  143.     end
  144.     # 释放战斗背景活动块
  145.     @battleback_sprite.dispose
  146.     # 释放敌人活动块、角色活动块
  147.     for sprite in @enemy_sprites + @actor_sprites
  148.       sprite.dispose
  149.     end
  150.     # 释放天候
  151.     @weather.dispose
  152.     # 释放图片活动块
  153.     for sprite in @picture_sprites
  154.       sprite.dispose
  155.     end
  156.     # 释放计时器活动块
  157.     @timer_sprite.dispose
  158.     # 释放显示端口
  159.     @viewport1.dispose
  160.     @viewport2.dispose
  161.     @viewport3.dispose
  162.     @viewport4.dispose
  163.   end
  164.   #--------------------------------------------------------------------------
  165.   # ● 显示效果中判定
  166.   #--------------------------------------------------------------------------
  167.   def effect?
  168.     # 如果是在显示效果中的话就返回 true
  169.     for sprite in @enemy_sprites + @actor_sprites
  170.       return true if sprite.effect?
  171.     end
  172.     return false
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 刷新画面
  176.   #--------------------------------------------------------------------------
  177.   def update
  178.     # 刷新角色的活动块 (对应角色的替换)
  179.     @actor_sprites[0].battler = $game_party.actors[0]
  180.     @actor_sprites[1].battler = $game_party.actors[1]
  181.     @actor_sprites[2].battler = $game_party.actors[2]
  182.     @actor_sprites[3].battler = $game_party.actors[3]
  183.     # 战斗背景的文件名与现在情况有差异的情况下
  184.     if @battleback_name != $game_temp.battleback_name
  185.       @battleback_name = $game_temp.battleback_name
  186.       if @battleback_sprite.bitmap != nil
  187.         @battleback_sprite.bitmap.dispose
  188.       end
  189.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  190.       @battleback_sprite.src_rect.set(0, 0, 640, 480)
  191.     end
  192.     # 刷新战斗者的活动块
  193.     for sprite in @enemy_sprites + @actor_sprites
  194.       sprite.update
  195.     end
  196.     # 刷新天气图形
  197.     @weather.type = $game_screen.weather_type
  198.     @weather.max = $game_screen.weather_max
  199.     @weather.update
  200.     # 刷新图片活动块
  201.     for sprite in @picture_sprites
  202.       sprite.update
  203.     end
  204.     # 刷新计时器活动块
  205.     @timer_sprite.update
  206.     # 设置画面的色调与震动位置
  207.     @viewport1.tone = $game_screen.tone
  208.     @viewport1.ox = $game_screen.shake
  209.     # 设置画面的闪烁色
  210.     @viewport4.color = $game_screen.flash_color
  211.     # 刷新显示端口
  212.     @viewport1.update
  213.     @viewport2.update
  214.     @viewport4.update
  215.   end
  216. end



  217. #==============================================================================
  218. # ■ Window_BattleStatus
  219. #------------------------------------------------------------------------------
  220. #  显示战斗画面同伴状态的窗口。
  221. #==============================================================================

  222. class Window_BattleStatus < Window_Base
  223. #--------------------------------------------------------------------------
  224. # ● 初始化对像
  225. #--------------------------------------------------------------------------
  226. #$data_system_level_up_me = "Audio/ME/升级音乐"
  227. def initialize
  228.    super(0, 0, 640, 480)
  229.    self.contents = Bitmap.new(width - 10, height - 32)
  230.    self.opacity = 0
  231.    @level_up_flags = [false, false, false, false]
  232.    refresh
  233. end
  234. #--------------------------------------------------------------------------
  235. # ● 释放
  236. #--------------------------------------------------------------------------
  237. def dispose
  238.    super
  239. end
  240. #--------------------------------------------------------------------------
  241. # ● 设置升级标志
  242. #     actor_index : 角色索引
  243. #--------------------------------------------------------------------------
  244. def level_up(actor_index)
  245.    @level_up_flags[actor_index] = true
  246. end
  247. #--------------------------------------------------------------------------
  248. # ● 刷新
  249. #--------------------------------------------------------------------------
  250. def refresh
  251.    self.contents.clear
  252.    @item_max = $game_party.actors.size
  253.     for i in 0...$game_party.actors.size
  254.      actor = $game_party.actors[i]
  255.      case i
  256.        when 0
  257.         x = 310
  258.         y = 390
  259.        when 1
  260.         x = 390
  261.         y = 340
  262.        when 2
  263.         x = 480
  264.         y = 300
  265.        when 3
  266.         x = 550
  267.         y = 270
  268.       end
  269.      if @level_up_flags[i]
  270.        self.contents.font.color = normal_color
  271.        self.contents.draw_text(x, y, 80, 24, "LEVEL UP!")
  272.        Audio.me_stop
  273. #        Audio.me_play($data_system_level_up_me)
  274.      else
  275.     end
  276.    end
  277. end

  278. #--------------------------------------------------------------------------
  279. # ● 刷新画面
  280. #--------------------------------------------------------------------------
  281. def update
  282.    super
  283.    # 主界面的不透明度下降
  284.    if $game_temp.battle_main_phase
  285.      self.contents_opacity -= 50 if self.contents_opacity > 1
  286.    else
  287.      self.contents_opacity += 50 if self.contents_opacity < 255
  288.    end
  289. end
  290. end
  291. #==============================================================================
  292. # ■ Window_BattleStatus
  293. #==============================================================================
  294. class Window_BattleStatus < Window_Base

  295.   
  296. #--------------------------------------------------------------------------
  297. # ● 初始化
  298. #--------------------------------------------------------------------------
  299. alias xrxs_bp2_refresh refresh
  300. def refresh
  301.    xrxs_bp2_refresh
  302.    @item_max = $game_party.actors.size
  303.     for i in 0...$game_party.actors.size
  304.      actor = $game_party.actors[i]
  305.      case i
  306.        when 0
  307.         x = 310
  308.         y = 390
  309.        when 1
  310.         x = 390
  311.         y = 340
  312.        when 2
  313.         x = 480
  314.         y = 300
  315.        when 3
  316.         x = 550
  317.         y = 270
  318.       end
  319.       ###########################一切自改##############################
  320.      HP(actor, x-10, y)
  321.      SP(actor, x-10, y + 10)
  322.      #######################################一切自改###############
  323.    end
  324. end
  325. end
复制代码

此贴于 2009-2-11 12:34:40 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

2
发表于 2009-2-10 06:53:44 | 只看该作者
看到LZ的签名图很眼熟所以进来留个爪子。
因为脚本原因,战斗血条是压在战斗显示头像上面的。解决的方法除了改脚本之外最好还是新建一个窗口来显示头像。建议LZ参考一下我这个帖子http://rpg.blue/viewthread.php?t ... D2%2D9+22%3A53%3A31
  1. class Window_Battleface < Window_Base
  2. #--------------------------------------------------------------------------
  3. # ● 初始化目标
  4. #--------------------------------------------------------------------------
  5. def initialize
  6.    super(0, 0, 640, 480)
  7.    self.contents = Bitmap.new(width - 32, height - 32)
  8.    self.opacity = 0
  9.    self.z  = 199
复制代码

把这部分的z值改大一点就可以了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
3
 楼主| 发表于 2009-2-10 17:29:05 | 只看该作者
楼上的方法可以解决头像的问题,可我是想在战斗中显示图片(不仅仅是头像)
血条还是在图片上面显示

那个。。。
话说我用的截图存档的脚本还是楼上提供的

冒昧的问一下,血条的Z值怎么改低一些?

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
4
 楼主| 发表于 2009-2-11 01:39:28 | 只看该作者
顶上去
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

5
发表于 2009-2-11 04:39:01 | 只看该作者
我说的很清楚了,请LZ举一反三
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
60 小时
注册时间
2008-8-27
帖子
531
6
 楼主| 发表于 2009-2-11 20:45:40 | 只看该作者
我不是没有动脑子想 而是实在不知道怎么办
重新发一帖再问吧!

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-18 03:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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