Project1

标题: 關於一個改變戰鬥背景圖的腳本 [打印本页]

作者: sakazaki    时间: 2013-2-25 22:47
标题: 關於一個改變戰鬥背景圖的腳本
腳本如下:當我選擇2的時候(用自己的圖片作為戰鬥圖)
測試下去,地圖id-0001是ok的,
但是我有好幾個地圖要設定不同的戰鬥圖,
比方說地圖2---用森林、地圖3---用瀑布,請問這樣我要怎麼改腳本。

RUBY 代码复制
  1. #==============================================================================
  2. # ■ VX-RGSS2 改变战斗背景 [版本.1.0.0]     by Claimh
  3. # 改变战斗的背景图.
  4. #==============================================================================
  5.  
  6.  
  7. module BattleBack
  8. #   选择战斗背景
  9. #   0:当前地图的战斗背景,为战斗背景(默认VX的样式)
  10. #   1:目前使用的地图作为战斗背景
  11. #   2:使用自己的图片,为战斗背景
  12. BB_TYPE = 2  # 在这里输入上面提到的编号
  13.  
  14. # 显示战斗地面
  15. BT_FLOOR = false
  16.  
  17. # 使用的图片(如果你选择的编号为2)
  18. M_B_BACK = {
  19.    # 地图编号 => "(Graphics/System/图片名)"
  20.   1 => "戰鬥圖-英文符號"
  21. }
  22. end
  23.  
  24.  
  25. #==============================================================================
  26. # ■ Spriteset_Battle
  27. #==============================================================================
  28. class Spriteset_Battle
  29. #--------------------------------------------------------------------------
  30. # ● Creating Battle Back Sprite
  31. #--------------------------------------------------------------------------
  32. def create_battleback
  33.   case BattleBack::BB_TYPE
  34.   when 0
  35.     source = $game_temp.background_bitmap
  36.     bitmap = Bitmap.new(640, 480)
  37.     bitmap.stretch_blt(bitmap.rect, source, source.rect)
  38.     bitmap.radial_blur(90, 12)
  39.     @battleback_sprite = Sprite.new(@viewport1)
  40.     @battleback_sprite.bitmap = bitmap
  41.     @battleback_sprite.ox = 320
  42.     @battleback_sprite.oy = 240
  43.     @battleback_sprite.x = 272
  44.     @battleback_sprite.y = 176
  45.     @battleback_sprite.wave_amp = 8
  46.     @battleback_sprite.wave_length = 240
  47.     @battleback_sprite.wave_speed = 120
  48.   when 1
  49.     source = $game_temp.background_bitmap
  50.     bitmap = Bitmap.new(640, 480)
  51.     bitmap.stretch_blt(bitmap.rect, source, source.rect)
  52.     @battleback_sprite = Sprite.new(@viewport1)
  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.   when 2
  59.     @battleback_sprite = BattleBackSprite.new(@viewport1)
  60.   end
  61. end
  62. #--------------------------------------------------------------------------
  63. # ● Creating Battle Floor Sprite
  64. #--------------------------------------------------------------------------
  65.  
  66. def create_battlefloor
  67.   create_battlefloor_mbb if BattleBack::BT_FLOOR
  68. end
  69. #--------------------------------------------------------------------------
  70. # ● Delete Battle Floor Sprite
  71. #--------------------------------------------------------------------------
  72.  
  73. def dispose_battlefloor
  74.   dispose_battlefloor_mbb if BattleBack::BT_FLOOR
  75. end
  76. #--------------------------------------------------------------------------
  77. # ● Update Battle Floor Sprite
  78. #--------------------------------------------------------------------------
  79.  
  80. def update_battlefloor
  81.   update_battlefloor_mbb if BattleBack::BT_FLOOR
  82. end
  83. end
  84.  
  85.  
  86. #==============================================================================
  87. # ■ BattleBackSprite
  88. #==============================================================================
  89. class BattleBackSprite < Sprite
  90. # Background Screen Size
  91. WIDTH  = 544.00
  92. HEIGHT = 288.00
  93. #--------------------------------------------------------------------------
  94. # ● Object Initialization
  95. #     viewport : viewport
  96. #--------------------------------------------------------------------------
  97. def initialize(viewport = nil)
  98.   super(viewport)
  99.   self.bitmap = Cache.system(BattleBack::M_B_BACK[$game_map.map_id])
  100.   # Zoom is carried out according to picture size.
  101.   @x_zoom = WIDTH / self.bitmap.width
  102.   @y_zoom = HEIGHT / self.bitmap.height
  103.   @zoom = @x_zoom > @y_zoom ? @x_zoom : @y_zoom
  104.   # Zoom is carried out.
  105.   self.zoom_x = @zoom
  106.   self.zoom_y = @zoom
  107.   # Made into central display.
  108.   self.ox = self.bitmap.width / 2
  109.   self.oy = self.bitmap.height / 2
  110.   self.x = (self.bitmap.width / 2)  * @zoom
  111.   self.y = (self.bitmap.height / 2) * @zoom
  112. end
  113. end

作者: 彭格列第XI代    时间: 2013-2-25 23:59
  1. # 使用的图片(如果你选择的编号为2)
  2. M_B_BACK = {
  3.    # 地图编号 => "(Graphics/System/图片名)"
  4.   1 => "戰鬥圖-英文符號"
  5. }
复制代码
首先将图片放到[游戏目录/Graphics/System/]
然后看上面的脚本这里
1 => "戰鬥圖-英文符號"
意思是 地图 1 的战斗背景为    游戏目录/Graphics/System/戰鬥圖-英文符號.png
于是你再后面再加

2 => "戰鬥圖3"
3 => "戰鬥圖4"
..............

这样就行了吧?
作者: sakazaki    时间: 2013-2-26 01:50
本帖最后由 sakazaki 于 2013-2-26 01:58 编辑
彭格列第XI代 发表于 2013-2-25 23:59
首先将图片放到[游戏目录/Graphics/System/]
然后看上面的脚本这里
1 => "戰鬥圖-英文符號"


RUBY 代码复制
  1. module BattleBack
  2. #   选择战斗背景
  3. #   0:当前地图的战斗背景,为战斗背景(默认VX的样式)
  4. #   1:目前使用的地图作为战斗背景
  5. #   2:使用自己的图片,为战斗背景
  6. BB_TYPE = 2  # 在这里输入上面提到的编号
  7.  
  8. # 显示战斗地面
  9. BT_FLOOR = false
  10.  
  11. # 使用的图片(如果你选择的编号为2)
  12. M_B_BACK = {
  13.    # 地图编号 => "(Graphics/System/图片名)"
  14.   1 => "戰鬥圖-英文符號"
  15.   2 => "戰鬥圖-英文符號"
  16. }
  17. end


就像這樣,一進GAME就當掉了

ERR訊息:
script"戰鬥背景變更"line 25:SyntaxError occurred.

有勞您了!!


作者: sakazaki    时间: 2013-2-27 21:20
sakazaki 发表于 2013-2-26 01:50
module BattleBack
#   选择战斗背景
#   0:当前地图的战斗背景,为战斗背景(默认VX的样式)

我知道**出錯了@@

module BattleBack
#   选择战斗背景
#   0:当前地图的战斗背景,为战斗背景(默认VX的样式)
#   1:目前使用的地图作为战斗背景
#   2:使用自己的图片,为战斗背景
BB_TYPE = 1  # 在这里输入上面提到的编号

# 显示战斗地面
BT_FLOOR = false

# 使用的图片(如果你选择的编号为2)
M_B_BACK = {
   # 地图编号 => "(Graphics/System/图片名)"
  1 => "戰鬥圖-英文符號",<<<<<<<<這邊忘記加逗號Q_Q
  2 => "戰鬥圖-英文符號",
}
end

我的問題解決了,謝謝幾位前輩指教
作者: 黑窗花    时间: 2013-8-10 11:42
完全看不懂耶!




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