Advertisement
biward

[VXAce] ImageMenu

Oct 28th, 2013
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.48 KB | None | 0 0
  1. ################## IMAGE_MENU ################
  2.  
  3. # Auteur : Biward (merci à Nuki pour ses conseils)
  4. # Nom du Script : Image_Menu
  5. # Version : 2.0
  6. # Date 18/08/2013 12:35
  7. # Pour : forum Eclipso
  8.  
  9. # Utilité :
  10. # Permet l'affichage d'une image dans le menu.
  11. # Cette image doit ce trouver dans le dossir pictures de votre jeu et doit se nommer "Menu"
  12.  
  13. ### Configuration
  14. module BIME
  15.  
  16.   # Indiquez ici l'opacité des fenêtres du menu (0 à 255)
  17.   OPACITY_WINDOW = 150
  18.  
  19.   # Indiquez ici l'opacité de l'image que vous allez afficher (0 à 255)
  20.   OPACITY_IMG = 255
  21.  
  22.   # Indiquez ici le nom des images. Vou savez plusieurs possibilités.
  23.   # IMG = "Nom" qui cherchera le fichier "Nom" dans le dossier Picture.
  24.   # Ceci correspond donc à l'affichage d'une image unique
  25.   #
  26.   # IMG = [ "Nom1", "Nom2", ] qui affichera aléatoirement soit le fichier "Nom1"
  27.   # soit le fichier "Nom2" qui se situent dans le dossier Picture. Vous pouvez
  28.   # ajouter autant de fichier que vous le voulez.
  29.   #
  30.   # IMG = [ [Frame, "Anim1", "Anim2", ],   => animation 1
  31.   #         [Frame, "Anim3", "Anim4", ],   => animation 2
  32.   #       ]
  33.   # Ceci permet d'avoir un fond de menu animé.
  34.   # Si l'animation 1 est choisie (aléatoirement) vous aurez ça :
  35.   # toutes les X Frame, le fond va alterner entre Anim1 et Anim2.
  36.   # Si l'animation 2 est choisie (aléatoirement) vous aurez ça :
  37.   # toutes les X Frame, le fond va alterner entre Anim3 et Anim4.  
  38.   IMG = [ [60, "Menu", "Menu2"],
  39.           [20, "Menu1", "Menu3"]
  40.   ]
  41.  
  42.   # Si toutefois vous voulez choisir le fond à afficher, il suffit de faire un
  43.   # appel de script et de faire cette commande :
  44.   # menu_background(1)
  45.   # Cet exemple affichera le premier fond que vous avez configuré (sauf bien sûr,
  46.   # s'il s'agit d'un fichier unique).
  47.   # Si vous avez défini un fond pour une certaine map et que vous voulez revenir
  48.   # au choix aléatoire, faite ceci :
  49.   # menu_background(nil)
  50.   #       ou
  51.   # menu_background(0)
  52. end
  53.  
  54. #############################################
  55. ################### SCRIPT ###################
  56. #############################################
  57. class Scene_Menu
  58.  
  59.   alias start_bime start
  60.   alias terminate_bime terminate
  61.   alias update_bime update
  62.  
  63.   class << self
  64.     attr_accessor :mb, :menu_background
  65.   end
  66.  
  67.   def start
  68.     start_bime
  69.     opacity_window if Scene_Menu.mb
  70.     create_menu_back if Scene_Menu.mb
  71.   end
  72.  
  73.   def terminate
  74.     terminate_bime
  75.     dispose_menu_background if Scene_Menu.mb
  76.   end
  77.  
  78.   def update
  79.     update_bime
  80.     update_menu_background if @update_menu_background && Scene_Menu.mb
  81.   end
  82.  
  83.   def opacity_window
  84.     @command_window.opacity = BIME::OPACITY_WINDOW
  85.     @gold_window.opacity = BIME::OPACITY_WINDOW
  86.     @status_window.opacity = BIME::OPACITY_WINDOW
  87.   end
  88.  
  89.   def create_menu_back
  90.     if BIME::IMG.is_a?(Array)
  91.       @c = rand(BIME::IMG.size)
  92.       if Scene_Menu.menu_background
  93.         @c = Scene_Menu.menu_background - 1 if Scene_Menu.menu_background > 0
  94.       end
  95.       if BIME::IMG[@c].is_a?(Array)
  96.         @update_menu_background = true
  97.         @need_to = BIME::IMG[@c][0]
  98.         @count = 0
  99.         @index_back = 1
  100.         create_menu_background(BIME::IMG[@c][@index_back].to_s)
  101.       else
  102.         create_menu_background(BIME::IMG[@c].to_s)
  103.       end
  104.     end
  105.   end
  106.      
  107.  
  108.   def create_menu_background(name)
  109.     @sprite = Sprite.new
  110.     @sprite.bitmap = Cache.picture(name.to_s)
  111.     @sprite.x = Graphics.width / 2 - @sprite.width / 2
  112.     @sprite.y = Graphics.height / 2  - @sprite.height / 2
  113.     @sprite.opacity = BIME::OPACITY_IMG
  114.   end
  115.  
  116.   def dispose_menu_background
  117.     if @sprite.bitmap || @sprite
  118.       @sprite.dispose
  119.     end
  120.   end
  121.  
  122.   def update_menu_background
  123.     @count += 1
  124.     if @count >= @need_to
  125.       @index_back += 1
  126.       @count = 0
  127.       if @index_back < BIME::IMG[@c].size
  128.         dispose_menu_background
  129.         create_menu_background(BIME::IMG[@c][@index_back])
  130.       end
  131.     end
  132.     if @index_back == BIME::IMG[@c].size
  133.       @index_back = 1
  134.       dispose_menu_background
  135.       create_menu_background(BIME::IMG[@c][@index_back])
  136.     end
  137.   end
  138. end
  139.  
  140. class Game_Interpreter
  141.   def menu_background(nb)
  142.     Scene_Menu.menu_background = nb
  143.   end
  144.  
  145.   def enable_menu_background
  146.     Scene_Menu.mb = true
  147.   end
  148.  
  149.   def disable_menu_background
  150.     Scene_Menu.mb = nil
  151.   end
  152. end
  153. ##############################################
  154. ############## FIN DU SCRIPT ##################
  155. ##############################################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement