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

Project1

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

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
42 小时
注册时间
2016-11-27
帖子
30
跳转到指定楼层
1
发表于 2017-1-25 20:27:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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


RUBY 代码复制
  1. #==============================================================================
  2. # RGSS3_战斗雾景
  3. # 原作者:tomoaky ([url]http://hikimoki.hp.infoseek.co.jp/[/url])
  4. # 翻译、重写:Pickstar2
  5. # 优化:可以定义一次雾飘过的数量,雾的图形种类
  6. #==============================================================================
  7. # ■ Sprite_Mist
  8. #==============================================================================
  9. module Cache
  10.   def self.battle(filename)
  11.     load_bitmap("Graphics/Battle/", filename)
  12.   end
  13. end
  14. module Battlefog
  15.   COLORVARIABLES = 1 # 雾图形选用文件的变量。请在Graphics中新建一个Battle文件夹
  16.   BATTLEFOG = 1      # 禁用雾图形的开关(打开为禁用)Battlefog::COLORVARIABLES
  17.   NUM = 10           # 雾的数量
  18. end
  19. class Sprite_Mist < Sprite
  20.   #--------------------------------------------------------------------------
  21.   # ● 初始化
  22.   #--------------------------------------------------------------------------
  23.   def initialize(viewport)
  24.     super(viewport)
  25.     color = $game_variables[Battlefog::COLORVARIABLES]
  26.     if color == 1
  27.       self.bitmap = Cache.battle("mist") # 变量1的值 为1时,使用"mist"图像
  28.     elsif color == 2
  29.       self.bitmap = Cache.battle("mist")
  30.     elsif color == 3
  31.       self.bitmap = Cache.battle("mist")
  32.     elsif color == 4
  33.       self.bitmap = Cache.battle("mist")
  34.     elsif color == 5
  35.       self.bitmap = Cache.battle("mist")
  36.     elsif color == 6
  37.       self.bitmap = Cache.battle("mist")
  38.     else
  39.       self.bitmap = Cache.battle("mist") # 除此以外的情况默认使用"mist"图像
  40.     end
  41.     self.blend_type = 1
  42.     self.ox = 128
  43.     self.oy = 128
  44.     self.y = Graphics.height - 128 - self.oy + rand(180)
  45.     setup
  46.     self.x = rand(Graphics.width)
  47.     @real_x = self.x << 10
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● セットアップ
  51.   #--------------------------------------------------------------------------
  52.   def setup
  53.     @vx = rand(512) + 512
  54.     self.zoom_x = (rand(600) + 700) / 1200.0
  55.     if self.zoom_x < 1.0    # バトラーの奥に配置
  56.       self.z = 55
  57.     else                    # バトラーの手前に配置
  58.       self.z = 400
  59.     end
  60.     self.zoom_y = self.zoom_x
  61.     self.x = Graphics.width + (128 * self.zoom_x).to_i
  62.     @real_x = self.x << 10
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 释放
  66.   #--------------------------------------------------------------------------
  67.   def dispose
  68.     self.bitmap.dispose
  69.     super
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 更新
  73.   #--------------------------------------------------------------------------
  74.   def update
  75.     super
  76.     @real_x -= @vx
  77.     self.x = @real_x >> 10
  78.     setup if self.x < (0 - (128 * self.zoom_x).to_i)
  79.   end
  80. end
  81.  
  82. #==============================================================================
  83. # ■ Spriteset_Battle
  84. #==============================================================================
  85. class Spriteset_Battle
  86.   #--------------------------------------------------------------------------
  87.   # ● 戦闘背景(床)スプライトの作成
  88.   #--------------------------------------------------------------------------
  89.   alias tmbmist_spriteset_battle_create_battleback1 create_battleback1
  90.   def create_battleback1
  91.     tmbmist_spriteset_battle_create_battleback1
  92.     @mist_sprites = []
  93.     unless $game_switches[Battlefog::BATTLEFOG]
  94.       @mist_sprites = Array.new(Battlefog::NUM) { Sprite_Mist.new(@viewport1) }
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 戦闘背景(床)スプライトの解放
  99.   #--------------------------------------------------------------------------
  100.   alias tmbmist_spriteset_battle_dispose_battleback1 dispose_battleback1
  101.   def dispose_battleback1
  102.     tmbmist_spriteset_battle_dispose_battleback1
  103.     @mist_sprites.each {|sprite| sprite.dispose }
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 戦闘背景(床)スプライトの更新
  107.   #--------------------------------------------------------------------------
  108.   alias tmbmist_spriteset_battle_update_battleback1 update_battleback1
  109.   def update_battleback1
  110.     tmbmist_spriteset_battle_update_battleback1
  111.     @mist_sprites.each {|sprite| sprite.update }
  112.   end
  113. end
  114.   #--------------------------------------------------------------------------
  115.   # ★
  116.   #--------------------------------------------------------------------------

mist.png (9.83 KB, 下载次数: 17)

mist.png

RGSS3.zip

1.24 KB, 下载次数: 87

初始版本

评分

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

查看全部评分

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2017-3-21
帖子
3
2
发表于 2017-5-5 16:20:59 | 只看该作者
感谢LZ!!!!!!!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-1 11:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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