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

Project1

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

[已经解决] 这个脚本为什么不能随机更改战斗背景图

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
3 小时
注册时间
2012-5-4
帖子
284
跳转到指定楼层
1
发表于 2012-6-27 20:24:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
帮在下看看问题?
只能更改渐变图
  1. #==============================================================================
  2. # 随机渐变,区域控制战斗背景图 by 沉影不器
  3. #------------------------------------------------------------------------------
  4. # 功能描述: ① 使用区域名称定义不同的战斗背景图
  5. #              如果没有找到背景图,则使用RMVX默认眩晕背景
  6. #           ② 进入战斗时,随机使用渐变效果
  7. # 使用方法: ① 复制脚本,插入到Main之前
  8. #           ② 在Graphics文件夹下新建Battlebacks文件夹用于存放战斗背景图
  9. #              您也可以在脚本第16行自行设定路径
  10. #           ③ 准备与区域名称相同的战斗背景图到您设定的战斗背景图文件夹内
  11. #           ④ 在Graphics文件夹下新建Transitions文件夹用于存放渐变图
  12. #              您也可以在脚本第17行自行设定路径
  13. #           ⑤ 在脚本第18行设定战斗背景图的后缀名
  14. #           ⑥ 在脚本第19行设定是否直接用地图做战斗图
  15. #------------------------------------------------------------------------------
  16.   B_PATH = ""      # 设定战斗背景图存储路径
  17.   T_PATH = ""      # 设定渐变图存储路径
  18.   EXTNAME = ".jpg"                      # 设定战斗背景图后缀名
  19.   DIRECT_MAP = false                    # 设定是否直接用地图做战斗图
  20. #==============================================================================
  21. module Cache
  22.   #--------------------------------------------------------------------------
  23.   # ● 获取战斗背景图
  24.   #     filename : 文件名
  25.   #     hue      : 色相变化值
  26.   #--------------------------------------------------------------------------
  27.   def self.battleback(filename, hue)
  28.     load_bitmap(B_PATH, filename, hue)
  29.   end
  30. end

  31. #==============================================================================
  32. # ■ Spriteset_Battle
  33. #------------------------------------------------------------------------------
  34. #  处理战斗画面的活动块的类。本类在 Scene_Battle 类
  35. # 的内部使用。
  36. #==============================================================================
  37. class Spriteset_Battle
  38.   #--------------------------------------------------------------------------
  39.   # ● 生成战斗背景活动块
  40.   #--------------------------------------------------------------------------
  41. def create_battleback
  42.    for area in $data_areas.values
  43.      break if $game_player.in_area?(area)
  44.    end
  45.    @battleback_sprite = Sprite.new(@viewport1)
  46.    if area != nil and FileTest.exist?(B_PATH+area.name+EXTNAME) and !DIRECT_MAP
  47.      @battleback_sprite.bitmap = Cache.battleback(area.name, 0)
  48.    else
  49.      source = $game_temp.background_bitmap
  50.      bitmap = Bitmap.new(640, 480)
  51.      bitmap.stretch_blt(bitmap.rect, source, source.rect)
  52.      bitmap.radial_blur(90, 12) unless DIRECT_MAP
  53.      @battleback_sprite.bitmap = bitmap
  54.      @battleback_sprite.ox = 320
  55.      @battleback_sprite.oy = 240
  56.      @battleback_sprite.x = 272
  57.      @battleback_sprite.y = 176
  58.      @battleback_sprite.wave_amp = 8 unless DIRECT_MAP
  59.      @battleback_sprite.wave_length = 240 unless DIRECT_MAP
  60.      @battleback_sprite.wave_speed = 120 unless DIRECT_MAP
  61.    end
  62.   end
  63. end

  64. #==============================================================================
  65. # ■ Scene_Title
  66. #------------------------------------------------------------------------------
  67. #  处理标题画面的类。
  68. #==============================================================================
  69. class Scene_Title < Scene_Base
  70.   #--------------------------------------------------------------------------
  71.   # ● 载入战斗测试用的数据库
  72.   #--------------------------------------------------------------------------
  73.   alias bg_load load_bt_database
  74.   def load_bt_database
  75.     bg_load
  76.     $data_areas = load_data("Data/Areas.rvdata")
  77.   end
  78. end

  79. #==============================================================================
  80. # ■ Scene_Map
  81. #------------------------------------------------------------------------------
  82. #  处理地图画面的类。
  83. #==============================================================================
  84. class Scene_Map < Scene_Base
  85.   #--------------------------------------------------------------------------
  86.   # ● 执行战斗前变换
  87.   #--------------------------------------------------------------------------
  88.   def perform_battle_transition
  89.     file = Dir.entries(T_PATH)
  90.     file.delete(".");file.delete("..")
  91.     file_index = rand(file.size)
  92.     Graphics.transition(80, T_PATH + file[file_index], 80)
  93.     Graphics.freeze
  94.   end
  95. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
242 小时
注册时间
2011-12-10
帖子
238
2
发表于 2012-6-27 20:47:34 | 只看该作者
本帖最后由 sd592078335 于 2012-6-27 20:48 编辑

可以在Scene_Map 加入这个、便可改变渐变
  1. #--------------------------------------------------------------------------
  2.   # ● 执行战斗渐变
  3.   #--------------------------------------------------------------------------
  4.   def perform_battle_transition
  5.     Graphics.transition(80, "Graphics/System/BattleStart", 80)
  6.     Graphics.freeze
  7.   end
  8. end
复制代码
接着、再用下面的脚本:
  1. #   CONFIG    #
  2. #############
  3. module MOG_VX02
  4. #Definição da switch que ativa o efeito Wave.  
  5. BB_WAVE_SWITCH = 9999
  6. #Definição da switch que ativa a versão VX.
  7. BB_VXEDITION_SWITCH = 9999
  8. end
  9. #-------------------------------------------------
  10. $mogscript = {} if $mogscript == nil
  11. $mogscript["battleback_xp"] = true
  12. #-------------------------------------------------
  13. ###############
  14. # Game_System #
  15. ###############
  16. class Game_System
  17. attr_accessor :bb
  18. alias mog_vx02_initialize initialize
  19. def initialize
  20. mog_vx02_initialize
  21. @bb = ""
  22. end
  23. end
  24. ###############
  25. # Module Cache #
  26. ###############
  27. module Cache  
  28.   def self.battleback(filename)
  29.     load_bitmap("Graphics/battlebacks/", filename)
  30.   end
  31. end
  32. #################
  33. # Spriteset_Battle #
  34. #################
  35. class Spriteset_Battle
  36. include MOG_VX02
  37.   def create_battleback
  38.     @battleback_sprite = Sprite.new(@viewport1)
  39.     source = Cache.battleback($game_system.bb.to_s) rescue empty
  40.     if  $game_switches[BB_WAVE_SWITCH] == true
  41.     bitmap = Bitmap.new(544, 416)
  42.     else
  43.     bitmap = Bitmap.new(544, 416)
  44.     end
  45.     bitmap.stretch_blt(bitmap.rect, source, source.rect)
  46.     bitmap.radial_blur(90, 12) if  $game_switches[BB_VXEDITION_SWITCH] == true
  47.     @battleback_sprite.bitmap = bitmap
  48.     wave_on if  $game_switches[BB_WAVE_SWITCH] == true
  49. end
  50. def wave_on
  51.     @battleback_sprite.ox = 320
  52.     @battleback_sprite.oy = 240
  53.     @battleback_sprite.x = 272
  54.     @battleback_sprite.y = 176  
  55.     @battleback_sprite.wave_amp = 8
  56.     @battleback_sprite.wave_length = 240
  57.     @battleback_sprite.wave_speed = 120     
  58. end
  59. def empty
  60.    @battleback_sprite.bitmap =  $game_temp.background_bitmap
  61. end
  62. def create_battlefloor
  63.     if  $game_switches[BB_VXEDITION_SWITCH] == true
  64.     @battlefloor_sprite = Sprite.new(@viewport1)
  65.     @battlefloor_sprite.bitmap = Cache.system("BattleFloor")
  66.     @battlefloor_sprite.x = 0
  67.     @battlefloor_sprite.y = 192
  68.     @battlefloor_sprite.z = 1
  69.     @battlefloor_sprite.opacity = 128
  70.     else
  71.     @battlefloor_sprite = Sprite.new(@viewport1)
  72.     end
  73.   end
  74. end
复制代码
然后在并行处理的事件中加入脚本:$game_system.bb = "战斗背景的名字"


这个错误比较少、望采纳~
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1409
在线时间
962 小时
注册时间
2012-4-30
帖子
1475

开拓者

3
发表于 2012-6-27 21:48:24 | 只看该作者
本帖最后由 铅笔描绘的思念 于 2012-6-27 21:50 编辑

http://rpg.blue/forum.php?mod=viewthread&tid=235646  话说你真是。。。如果要随机渐变的话。。加这个

  1. B_PATH = ""      # 设定战斗背景图存储路径
  2. T_PATH = ""      # 设定渐变图存储路径
  3. #==============================================================================
  4. # ■ Scene_Map
  5. #------------------------------------------------------------------------------
  6. #  处理地图画面的类。
  7. #==============================================================================
  8. class Scene_Map < Scene_Base
  9.   #--------------------------------------------------------------------------
  10.   # ● 执行战斗前变换
  11.   #--------------------------------------------------------------------------
  12.   def perform_battle_transition
  13.     file = Dir.entries(T_PATH)
  14.     file.delete(".");file.delete("..")
  15.     file_index = rand(file.size)
  16.     Graphics.transition(80, T_PATH + file[file_index], 80)
  17.     Graphics.freeze
  18.   end
  19. end
复制代码
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 03:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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