Zmiana głośności muzyki gry w menu
Aktualny czas: 20-06-25, 23:30 Witaj! Przejdź do zakładki Logowanie lub Rejestracja


Wątek zamknięty 
[VX] Zmiana głośności muzyki gry w menu
Allemov Offline
*


Liczba postów: 75
Dołączył: 29-07-13

Pomógł: 2



Post: #1
Zmiana głośności muzyki gry w menu

Generalnie rzecz biorąc można powiedzieć, że jadę po bandzie pytając o coś takiego, ale - czy istnieje możliwość umieszczenia w menu gry ustawień głośności muzyki?

Wystarczyłoby gdyby były opcje 0%, 50% i 100% w zasadzie, ale oczywiście czym więcej tym lepiej.

Bierze się to stąd, że części (na szczęście mniejszej) testerów muzyka się nie podoba i dlatego też wyłączali głos całej gry nie wiedząc jak da się wyłączyć tylko ją. Większość jednak uważa że muzyka jest dobra czy nawet bardzo dobra.

Dlatego też - zakładając, że testerzy są jakąś reprezentacją ogółu przyszłych graczy - najprostszą formą dogodzenia wszystkim jest znany z większości gier, od wyścigowych po RPGi, suwak głośności muzyki (czasem idący w parze z suwakiem głośności odgłosów).

Myślę, że taki skrypt przydałby się naprawdę wielu osobom i nie zdziwiłbym się w sumie gdyby już gdzieś istniał.

A więc? Czy coś takiego już istnieje? Czy w ogóle da się coś takiego napisać?

Pozdrawiam!
Ryszard 'Allemov'
(Ten post był ostatnio modyfikowany: 08-11-14 19:37 przez Allemov.)
08-11-14 19:24
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Venesard Offline
*


Liczba postów: 226
Dołączył: 07-11-14

Pomógł: 36



Post: #2
RE: Zmiana głośności muzyki w menu

Siema, to znowu ja :D a może wolałbyś od razu skrypt dodający opcje do gry? Głośność BGM, kursora, ustawienia trudności gry itp. Jak coś to dysponuję takim czymś.

Sam nie wiem czy coś tworzę.
08-11-14 19:35
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Allemov Offline
*


Liczba postów: 75
Dołączył: 29-07-13

Pomógł: 2



Post: #3
RE: Zmiana głośności muzyki gry w menu

Moja gra ma jeden poziom trudności i nie ma kursora, ale gdyby dało się te linijki usunąć i zostawić samo BGM (czyli muzykę, przecież) to byłoby gitez. :P
08-11-14 19:39
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Venesard Offline
*


Liczba postów: 226
Dołączył: 07-11-14

Pomógł: 36



Post: #4
RE: Zmiana głośności muzyki gry w menu

Ale czekaj czekaj, bo poprzedni temat był w kategorii [XP], a ten jest w [VX], to w jakim w końcu tworzysz? O.o Da się zostawić samą muzykę, ale mam skrypt pod [XP] :/

Sam nie wiem czy coś tworzę.
08-11-14 19:48
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Allemov Offline
*


Liczba postów: 75
Dołączył: 29-07-13

Pomógł: 2



Post: #5
RE: Zmiana głośności muzyki gry w menu

Poprzedni temat, jak wszystkie które tu założyłem od czasu rozpoczęcia tworzenia gry - był na VXie. :>
08-11-14 19:51
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Venesard Offline
*


Liczba postów: 226
Dołączył: 07-11-14

Pomógł: 36



Post: #6
RE: Zmiana głośności muzyki gry w menu

Haha, a ja skrypt sprawdzałem w XP czy działa wszystko tak jak ci napisałem :D

Sam nie wiem czy coś tworzę.
08-11-14 20:16
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Allemov Offline
*


Liczba postów: 75
Dołączył: 29-07-13

Pomógł: 2



Post: #7
RE: Zmiana głośności muzyki gry w menu

A więc?

Nie ma nikogo chętnego do pomocy? sad

Może chociaż da się przetłumaczyć ten skrypt Venesarda?

Albo stwierdzić, że działa na VXie, tak jak działał skrypt na paski życia i many?
11-11-14 16:02
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Ayene Offline
*


Liczba postów: 758
Dołączył: 09-04-13

Pomógł: 112



Post: #8
RE: Zmiana głośności muzyki gry w menu

Sprawdź to:
#==============================================================================
# ** Scene_Volume by Ayene
#
# * $scene = Scene_Volume.new
#==============================================================================

module RPG  
  #--------------------------------------------------------------------------
  # * SE
  #--------------------------------------------------------------------------
  class SE < AudioFile
    def play
      unless @name.empty?
        Audio.se_play("Audio/SE/" + @name, $game_config.se_volume, @pitch)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * ME
  #--------------------------------------------------------------------------
  class ME < AudioFile
    def play
      unless @name.empty?
        Audio.me_play("Audio/ME/" + @name, $game_config.se_volume, @pitch)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * BGM
  #--------------------------------------------------------------------------
  class BGM < AudioFile
    @@last = BGM.new
    def play
      if @name.empty?
        Audio.bgm_stop
        @@last = BGM.new
      else
        Audio.bgm_play("Audio/BGM/" + @name, $game_config.bgm_volume, @pitch)
        @@last = self
      end
    end
  end
  #--------------------------------------------------------------------------
  # * BGS
  #--------------------------------------------------------------------------
  class BGS < AudioFile
    @@last = BGS.new
    def play
      if @name.empty?
        Audio.bgs_stop
        @@last = BGS.new
      else
        Audio.bgs_play("Audio/BGS/" + @name, $game_config.bgm_volume, @pitch)
        @@last = self
      end
    end
  end
end

class Bitmap    
  #--------------------------------------------------------------------------
  # * Gradient Volume Bar
  #--------------------------------------------------------------------------  
  def gradient_bar_volume(x, y, w, color1, color2, rate)
    fill_rect(x + 1, y, w + 2, 14, Color.new(106, 106, 106, 255))
    (1..6).each {|i|
    color = Color.new(color2.red*i/6, color2.green*i/6, color2.blue*i/6, 255)
    fill_rect(x + 2, y + i, w, 14 - i * 2, color)
    color = Color.new(color1.red*i/6, color1.green*i/6, color1.blue*i/6, 255)
    fill_rect(x + 2, y + i, rate, 14 - i * 2, color)}
  end  
end

class Game_Config
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :bgm_volume
  attr_accessor :se_volume
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @bgm_volume = 80
    @se_volume = 60
  end
  #--------------------------------------------------------------------------
  # * Save Configuration
  #--------------------------------------------------------------------------
  def config_save
    file = File.open("Config.rvdata", "wb")
    Marshal.dump($game_config, file)
    file.close
  end  
end

class Sprite_Volume < Sprite
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(view, bar)
    super(view)
    self.bitmap = Bitmap.new(410, 58)
    self.z = 1000
    refresh(bar)
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    super
  end  
  #--------------------------------------------------------------------------
  # * Frame Refresh
  #--------------------------------------------------------------------------
  def refresh(vol)      
    self.bitmap.clear  
    rate = (vol < 100 ? vol * 100 / 100 : 100)
    color1 = Color.new(231, 255, 30, 255)
    color2 = Color.new(0, 0, 80, 255)
    self.bitmap.gradient_bar_volume(0, 32, 100, color1, color2, rate)    
    text = sprintf("%d%", vol)
    self.bitmap.draw_text(116, 22, 120, 32, text)
  end  
end

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  alias aye_vol_sctitle_crgmob create_game_objects
  def create_game_objects
    aye_vol_sctitle_crgmob
    filename = "Config.rvdata"
    if FileTest.exist?(filename)
      file = File.open(filename, "rb")
      $game_config = Marshal.load(file)
      file.close
    else
      $game_config = Game_Config.new
    end
  end
end

class Scene_Volume < Scene_Base  
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super  
    create_command_window    
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    @command_window.dispose
    @volume_bgm.dispose
    @volume_se.dispose
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    com = ["BGM", "SE"]
    @command_window = Window_Command.new(320, com)
    @command_window.x = 110
    @command_window.y = 108
    @volume_bgm = Sprite_Volume.new(nil, $game_config.bgm_volume)
    @volume_bgm.y = 96
    @volume_bgm.x = 240
    @volume_se = Sprite_Volume.new(nil, $game_config.se_volume)
    @volume_se.y = @volume_bgm.y + Window_Base::WLH
    @volume_se.x = 240
  end  
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    command_selection
  end
  #--------------------------------------------------------------------------
  # * Command Selection
  #--------------------------------------------------------------------------
  def command_selection
    @command_window.update  
    case @command_window.index
    when 0      
      if Input.press?(Input::LEFT) and $game_config.bgm_volume > 0
        $game_config.bgm_volume -= 1
        @volume_bgm.refresh($game_config.bgm_volume)
      elsif Input.press?(Input::RIGHT) and $game_config.bgm_volume < 100
        $game_config.bgm_volume += 1
        @volume_bgm.refresh($game_config.bgm_volume)
      end          
    when 1
      if Input.press?(Input::LEFT) and $game_config.se_volume > 0
        $game_config.se_volume -= 1        
        @volume_se.refresh($game_config.se_volume)
      elsif Input.press?(Input::RIGHT) and $game_config.se_volume < 100
        $game_config.se_volume += 1
        @volume_se.refresh($game_config.se_volume)
      end      
    end  
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      return_scene
    end
  end
  #--------------------------------------------------------------------------
  # * Return Scene
  #--------------------------------------------------------------------------
  def return_scene
    Sound.play_decision    
    $game_config.config_save
    $game_map.autoplay
    $scene = Scene_Map.new
  end
end

[Obrazek: aye_furniture_pres.png]
12-11-14 02:16
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Allemov Offline
*


Liczba postów: 75
Dołączył: 29-07-13

Pomógł: 2



Post: #9
RE: Zmiana głośności muzyki gry w menu

(12-11-14 02:16)Ayene napisał(a):  Sprawdź to:
#==============================================================================
# ** Scene_Volume by Ayene
#
# * $scene = Scene_Volume.new
#==============================================================================

module RPG  
  #--------------------------------------------------------------------------
  # * SE
  #--------------------------------------------------------------------------
  class SE < AudioFile
    def play
      unless @name.empty?
        Audio.se_play("Audio/SE/" + @name, $game_config.se_volume, @pitch)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * ME
  #--------------------------------------------------------------------------
  class ME < AudioFile
    def play
      unless @name.empty?
        Audio.me_play("Audio/ME/" + @name, $game_config.se_volume, @pitch)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * BGM
  #--------------------------------------------------------------------------
  class BGM < AudioFile
    @@last = BGM.new
    def play
      if @name.empty?
        Audio.bgm_stop
        @@last = BGM.new
      else
        Audio.bgm_play("Audio/BGM/" + @name, $game_config.bgm_volume, @pitch)
        @@last = self
      end
    end
  end
  #--------------------------------------------------------------------------
  # * BGS
  #--------------------------------------------------------------------------
  class BGS < AudioFile
    @@last = BGS.new
    def play
      if @name.empty?
        Audio.bgs_stop
        @@last = BGS.new
      else
        Audio.bgs_play("Audio/BGS/" + @name, $game_config.bgm_volume, @pitch)
        @@last = self
      end
    end
  end
end

class Bitmap    
  #--------------------------------------------------------------------------
  # * Gradient Volume Bar
  #--------------------------------------------------------------------------  
  def gradient_bar_volume(x, y, w, color1, color2, rate)
    fill_rect(x + 1, y, w + 2, 14, Color.new(106, 106, 106, 255))
    (1..6).each {|i|
    color = Color.new(color2.red*i/6, color2.green*i/6, color2.blue*i/6, 255)
    fill_rect(x + 2, y + i, w, 14 - i * 2, color)
    color = Color.new(color1.red*i/6, color1.green*i/6, color1.blue*i/6, 255)
    fill_rect(x + 2, y + i, rate, 14 - i * 2, color)}
  end  
end

class Game_Config
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :bgm_volume
  attr_accessor :se_volume
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @bgm_volume = 80
    @se_volume = 60
  end
  #--------------------------------------------------------------------------
  # * Save Configuration
  #--------------------------------------------------------------------------
  def config_save
    file = File.open("Config.rvdata", "wb")
    Marshal.dump($game_config, file)
    file.close
  end  
end

class Sprite_Volume < Sprite
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(view, bar)
    super(view)
    self.bitmap = Bitmap.new(410, 58)
    self.z = 1000
    refresh(bar)
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    super
  end  
  #--------------------------------------------------------------------------
  # * Frame Refresh
  #--------------------------------------------------------------------------
  def refresh(vol)      
    self.bitmap.clear  
    rate = (vol < 100 ? vol * 100 / 100 : 100)
    color1 = Color.new(231, 255, 30, 255)
    color2 = Color.new(0, 0, 80, 255)
    self.bitmap.gradient_bar_volume(0, 32, 100, color1, color2, rate)    
    text = sprintf("%d%", vol)
    self.bitmap.draw_text(116, 22, 120, 32, text)
  end  
end

class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  alias aye_vol_sctitle_crgmob create_game_objects
  def create_game_objects
    aye_vol_sctitle_crgmob
    filename = "Config.rvdata"
    if FileTest.exist?(filename)
      file = File.open(filename, "rb")
      $game_config = Marshal.load(file)
      file.close
    else
      $game_config = Game_Config.new
    end
  end
end

class Scene_Volume < Scene_Base  
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    super  
    create_command_window    
  end
  #--------------------------------------------------------------------------
  # * Termination Processing
  #--------------------------------------------------------------------------
  def terminate
    super
    @command_window.dispose
    @volume_bgm.dispose
    @volume_se.dispose
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    com = ["BGM", "SE"]
    @command_window = Window_Command.new(320, com)
    @command_window.x = 110
    @command_window.y = 108
    @volume_bgm = Sprite_Volume.new(nil, $game_config.bgm_volume)
    @volume_bgm.y = 96
    @volume_bgm.x = 240
    @volume_se = Sprite_Volume.new(nil, $game_config.se_volume)
    @volume_se.y = @volume_bgm.y + Window_Base::WLH
    @volume_se.x = 240
  end  
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    command_selection
  end
  #--------------------------------------------------------------------------
  # * Command Selection
  #--------------------------------------------------------------------------
  def command_selection
    @command_window.update  
    case @command_window.index
    when 0      
      if Input.press?(Input::LEFT) and $game_config.bgm_volume > 0
        $game_config.bgm_volume -= 1
        @volume_bgm.refresh($game_config.bgm_volume)
      elsif Input.press?(Input::RIGHT) and $game_config.bgm_volume < 100
        $game_config.bgm_volume += 1
        @volume_bgm.refresh($game_config.bgm_volume)
      end          
    when 1
      if Input.press?(Input::LEFT) and $game_config.se_volume > 0
        $game_config.se_volume -= 1        
        @volume_se.refresh($game_config.se_volume)
      elsif Input.press?(Input::RIGHT) and $game_config.se_volume < 100
        $game_config.se_volume += 1
        @volume_se.refresh($game_config.se_volume)
      end      
    end  
    if Input.trigger?(Input::B) or Input.trigger?(Input::C)
      return_scene
    end
  end
  #--------------------------------------------------------------------------
  # * Return Scene
  #--------------------------------------------------------------------------
  def return_scene
    Sound.play_decision    
    $game_config.config_save
    $game_map.autoplay
    $scene = Scene_Map.new
  end
end

Wkleiłem, żaden błąd nie wyskakuje, ale menu nigdzie nie ma.
Umieściłem skrypt w złym miejscu, czy mam gdzieś umieścić odnośnik do niego?
14-11-14 22:37
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Ayene Offline
*


Liczba postów: 758
Dołączył: 09-04-13

Pomógł: 112



Post: #10
RE: Zmiana głośności muzyki gry w menu

Tak. Kod wywołania podany jest na górze skryptu:
$scene = Scene_Volume.new
Wystarczy wywołać go poleceniem 'Script' w zdarzeniu.

[Obrazek: aye_furniture_pres.png]
31-12-14 18:41
Znajdź wszystkie posty użytkownika
"Pomógł" przyznał(a):
Wątek zamknięty 


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości

Kontakt | Ultima Forum | Wróć do góry | Wróć do forów | Wersja bez grafiki | RSS
Powered By MyBB. © 2013 MyBB Group. All Rights Reserved.
Skórka by Ayene.