Project1

标题: 战斗中,插入的图不对己方人物遮盖。 [打印本页]

作者: 大宇宙时代    时间: 2013-9-15 05:23
标题: 战斗中,插入的图不对己方人物遮盖。
本帖最后由 大宇宙时代 于 2013-9-15 05:24 编辑

数据库
1 队伍 数字n
2 战斗事件,插入显示图片{一张满屏的红色图片} 加法 透明=150{为了表现黄昏的光效遮盖层}
3 战斗
问题是:
战斗的画面,默认是,己方不会被遮盖,只有背景,敌人被遮盖了,这样颜色不统一。

求助大侠。在战斗中,想,地图一样,所有层被插入图片,遮盖。谢谢。
作者: alpacanist    时间: 2013-9-15 14:28
呃……试试看脚本Spriteset_Battle里面23行  @viewport2.z = 101
这里的z值调到50以下,或者搜索一下脚本显示图片,让图片显示在101以上
作者: 恐惧剑刃    时间: 2013-9-15 16:01
使用事件显示图片?有没有搞错{:2_263:}
直接改Spriteset_Battle啊。。

脚本:
  1. #
  2. # 我没有素材,所以请将001-Gameover01.jpg复制在Icons文件夹下测试
  3. # 或换用其他图片!!
  4. #
  5. #==============================================================================
  6. # ■ Spriteset_Battle
  7. #------------------------------------------------------------------------------
  8. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  9. # 的内部使用。
  10. #==============================================================================

  11. class Spriteset_Battle
  12.   #--------------------------------------------------------------------------
  13.   # ● 定义实例变量
  14.   #--------------------------------------------------------------------------
  15.   attr_reader   :viewport1                # 敌人方的显示端口
  16.   attr_reader   :viewport2                # 角色方的显示端口
  17.   #--------------------------------------------------------------------------
  18.   # ● 初始化变量
  19.   #--------------------------------------------------------------------------
  20.   def initialize
  21.     # 生成显示端口
  22.     @viewport1 = Viewport.new(0, 0, 640, 320)
  23.     @viewport2 = Viewport.new(0, 0, 640, 480)
  24.     @viewport3 = Viewport.new(0, 0, 640, 480)
  25.     @viewport4 = Viewport.new(0, 0, 640, 480)
  26.     @viewport2.z = 101
  27.     @viewport3.z = 200
  28.     @viewport4.z = 5000
  29.     # 生成战斗背景活动块
  30.     @battleback_sprite = Sprite.new(@viewport1)
  31.     #####################################################
  32.     #自定义图形活动块
  33.     @battle_picture = Sprite.new(@viewport1)
  34.     #####################################################
  35.     # 生成敌人活动块
  36.     @enemy_sprites = []
  37.     for enemy in $game_troop.enemies.reverse
  38.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  39.     end
  40.     # 生成敌人活动块
  41.     @actor_sprites = []
  42.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  43.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  44.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  45.     @actor_sprites.push(Sprite_Battler.new(@viewport2))
  46.     # 生成天候
  47.     @weather = RPG::Weather.new(@viewport1)
  48.     # 生成图片活动块
  49.     @picture_sprites = []
  50.     for i in 51..100
  51.       @picture_sprites.push(Sprite_Picture.new(@viewport3,
  52.         $game_screen.pictures[i]))
  53.     end
  54.     # 生成计时器块
  55.     @timer_sprite = Sprite_Timer.new
  56.     # 刷新画面
  57.     update
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 释放
  61.   #--------------------------------------------------------------------------
  62.   def dispose
  63.     # 如果战斗背景位图存在的情况下就释放
  64.     if @battleback_sprite.bitmap != nil
  65.       @battleback_sprite.bitmap.dispose
  66.     end
  67.     # 释放战斗背景活动块
  68.     @battleback_sprite.dispose
  69.     #####################################################
  70.     # 自定义图形存在的情况下就释放
  71.     if @battle_picture.bitmap != nil
  72.       @battle_picture.bitmap.dispose
  73.     end
  74.     # 释放自定义图形活动块
  75.     @battle_picture.dispose
  76.     ######################################################
  77.     # 释放敌人活动块、角色活动块
  78.     for sprite in @enemy_sprites + @actor_sprites
  79.       sprite.dispose
  80.     end
  81.     # 释放天候
  82.     @weather.dispose
  83.     # 释放图片活动块
  84.     for sprite in @picture_sprites
  85.       sprite.dispose
  86.     end
  87.     # 释放计时器活动块
  88.     @timer_sprite.dispose
  89.     # 释放显示端口
  90.     @viewport1.dispose
  91.     @viewport2.dispose
  92.     @viewport3.dispose
  93.     @viewport4.dispose
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ● 显示效果中判定
  97.   #--------------------------------------------------------------------------
  98.   def effect?
  99.     # 如果是在显示效果中的话就返回 true
  100.     for sprite in @enemy_sprites + @actor_sprites
  101.       return true if sprite.effect?
  102.     end
  103.     return false
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 刷新画面
  107.   #--------------------------------------------------------------------------
  108.   def update
  109.     # 刷新角色的活动块 (对应角色的替换)
  110.     @actor_sprites[0].battler = $game_party.actors[0]
  111.     @actor_sprites[1].battler = $game_party.actors[1]
  112.     @actor_sprites[2].battler = $game_party.actors[2]
  113.     @actor_sprites[3].battler = $game_party.actors[3]
  114.     # 战斗背景的文件名与现在情况有差异的情况下
  115.     if @battleback_name != $game_temp.battleback_name
  116.       @battleback_name = $game_temp.battleback_name
  117.       if @battleback_sprite.bitmap != nil
  118.         @battleback_sprite.bitmap.dispose
  119.       end
  120.       @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
  121.       @battleback_sprite.src_rect.set(0, 0, 640, 320)
  122.     end
  123.     #########################################
  124.     if @battle_picture.bitmap != nil
  125.       @battle_picture.bitmap.dispose
  126.     end
  127.     #我没有什么素材,所以。。直接用的Gameover图,请自行更改!!
  128.     #图调用在这里,放在图标文件下,想放其他地方,请参考帮助RPG::Cache
  129.     @battle_picture.bitmap = RPG::Cache.icon("001-Gameover01.jpg")
  130.     #图的X、Y坐标以及图片的宽度高度在这里调整
  131.     @battle_picture.src_rect.set(0, 0, 640, 320)#或者640,480
  132.     #########################################
  133.     # 刷新战斗者的活动块
  134.     for sprite in @enemy_sprites + @actor_sprites
  135.       sprite.update
  136.     end
  137.     # 刷新天气图形
  138.     @weather.type = $game_screen.weather_type
  139.     @weather.max = $game_screen.weather_max
  140.     @weather.update
  141.     # 刷新图片活动块
  142.     for sprite in @picture_sprites
  143.       sprite.update
  144.     end
  145.     # 刷新计时器活动块
  146.     @timer_sprite.update
  147.     # 设置画面的色调与震动位置
  148.     @viewport1.tone = $game_screen.tone
  149.     @viewport1.ox = $game_screen.shake
  150.     # 设置画面的闪烁色
  151.     @viewport4.color = $game_screen.flash_color
  152.     # 刷新显示端口
  153.     @viewport1.update
  154.     @viewport2.update
  155.     @viewport4.update
  156.   end
  157. end
复制代码





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