查看: 2063|回复: 1

[RMVA发布] 【VX移植】战斗场景的雾

[复制链接]
梦石
0
星屑
50
在线时间
42 小时
注册时间
2016-11-27
回帖
23
发表于 2017-1-25 20:27:34 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 Pickstar2 于 2017-3-5 09:41 编辑

PS:原作者写的VA版本改写了雾的计算方式,所以表现效果不一致。重写了一份。仅供参考
附件提供的是原来的版本
使用效果图:
QQ截图20170305094105.png

[pre lang="ruby"]#==============================================================================
# RGSS3_战斗雾景
# 原作者:tomoaky (http://hikimoki.hp.infoseek.co.jp/)
# 翻译、重写:Pickstar2
# 优化:可以定义一次雾飘过的数量,雾的图形种类
#==============================================================================
# ■ Sprite_Mist
#==============================================================================
module Cache
  def self.battle(filename)
    load_bitmap("Graphics/Battle/", filename)
  end
end
module Battlefog
  COLORVARIABLES = 1 # 雾图形选用文件的变量。请在Graphics中新建一个Battle文件夹
  BATTLEFOG = 1      # 禁用雾图形的开关(打开为禁用)Battlefog::COLORVARIABLES
  NUM = 10           # 雾的数量
end
class Sprite_Mist < Sprite
  #--------------------------------------------------------------------------
  # ● 初始化
  #--------------------------------------------------------------------------
  def initialize(viewport)
    super(viewport)
    color = $game_variables[Battlefog::COLORVARIABLES]
    if color == 1
      self.bitmap = Cache.battle("mist") # 变量1的值 为1时,使用"mist"图像
    elsif color == 2
      self.bitmap = Cache.battle("mist")
    elsif color == 3
      self.bitmap = Cache.battle("mist")
    elsif color == 4
      self.bitmap = Cache.battle("mist")
    elsif color == 5
      self.bitmap = Cache.battle("mist")
    elsif color == 6
      self.bitmap = Cache.battle("mist")
    else
      self.bitmap = Cache.battle("mist") # 除此以外的情况默认使用"mist"图像
    end
    self.blend_type = 1
    self.ox = 128
    self.oy = 128
    self.y = Graphics.height - 128 - self.oy + rand(180)
    setup
    self.x = rand(Graphics.width)
    @real_x = self.x << 10
  end
  #--------------------------------------------------------------------------
  # ● セットアップ
  #--------------------------------------------------------------------------
  def setup
    @vx = rand(512) + 512
    self.zoom_x = (rand(600) + 700) / 1200.0
    if self.zoom_x < 1.0    # バトラーの奥に配置
      self.z = 55
    else                    # バトラーの手前に配置
      self.z = 400
    end
    self.zoom_y = self.zoom_x
    self.x = Graphics.width + (128 * self.zoom_x).to_i
    @real_x = self.x << 10
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● 更新
  #--------------------------------------------------------------------------
  def update
    super
    @real_x -= @vx
    self.x = @real_x >> 10
    setup if self.x < (0 - (128 * self.zoom_x).to_i)
  end
end

#==============================================================================
# ■ Spriteset_Battle
#==============================================================================
class Spriteset_Battle
  #--------------------------------------------------------------------------
  # ● 戦闘背景(床)スプライトの作成
  #--------------------------------------------------------------------------
  alias tmbmist_spriteset_battle_create_battleback1 create_battleback1
  def create_battleback1
    tmbmist_spriteset_battle_create_battleback1
    @mist_sprites = []
    unless $game_switches[Battlefog::BATTLEFOG]
      @mist_sprites = Array.new(Battlefog::NUM) { Sprite_Mist.new(@viewport1) }
    end
  end
  #--------------------------------------------------------------------------
  # ● 戦闘背景(床)スプライトの解放
  #--------------------------------------------------------------------------
  alias tmbmist_spriteset_battle_dispose_battleback1 dispose_battleback1
  def dispose_battleback1
    tmbmist_spriteset_battle_dispose_battleback1
    @mist_sprites.each {|sprite| sprite.dispose }
  end
  #--------------------------------------------------------------------------
  # ● 戦闘背景(床)スプライトの更新
  #--------------------------------------------------------------------------
  alias tmbmist_spriteset_battle_update_battleback1 update_battleback1
  def update_battleback1
    tmbmist_spriteset_battle_update_battleback1
    @mist_sprites.each {|sprite| sprite.update }
  end
end
  #--------------------------------------------------------------------------
  # ★
  #--------------------------------------------------------------------------[/pre]
mist.png

RGSS3.zip

1.24 KB, 下载次数: 89

初始版本

评分

参与人数 1星屑 +42 收起 理由
百里_飞柳 + 42 精品文章

查看全部评分

梦石
0
星屑
50
在线时间
6 小时
注册时间
2017-3-21
回帖
3
发表于 2017-5-5 16:20:59 | 显示全部楼层
感谢LZ!!!!!!!!!!
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部