Advertisement
polectron

Menu parrilla

Nov 16th, 2018
1,002
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 7.12 KB | None | 0 0
  1. class Scene_Map
  2.     def call_menu
  3.      $game_temp.menu_calling = false
  4.      $game_player.straighten
  5.      $game_map.update
  6.      pbCallMenu2
  7.     end
  8. end
  9.  
  10. class Menu2
  11.     def update;end
  12.  
  13.     def initialize
  14.       @selected_item = 0
  15.       @items = []
  16.      
  17.       @bagCmd = addCmd(["bag","Mochila","openBag"])
  18.       @partyCmd = addCmd(["pokeball","Equipo","openParty"])
  19.       @trainerCmd = addCmd(["trainer","Mochila","openTrainerCard"])
  20.       @saveCmd = addCmd(["save","Mochila","openSave"])
  21.       @optionsCmd = addCmd(["options","Opciones","openOptions"])
  22.       @debugCmd = addCmd(["debug","Mochila","pbDebugMenu"]) if $DEBUG
  23.       @exitCmd = addCmd(["exit","Mochila","exitMenu"])
  24.      
  25.       @icon_width = 66
  26.       @icon_height = 66
  27.  
  28.       @n_icons = 4 #iconos por fila
  29.       @spacing_x = 20 #espacio en x entre los iconos
  30.       @spacing_y = 20 #espacio en y entre los iconos
  31.      
  32.       @menu_width = @n_icons*(@icon_width+@spacing_x)-@spacing_x
  33.       @menu_height = (@items.length/@n_icons.to_f).ceil*(@icon_height+@spacing_y)-@spacing_y
  34.            
  35.       @x_margin = (Graphics.width-@menu_width)/2 #separación entre los iconos y el borde izquiero de la pantalla
  36.       @y_margin = (Graphics.height-@menu_height)/2 #separación entre los iconos y el borde superior de la pantalla
  37.      
  38.       @exit = false
  39.     end
  40.      
  41.     def pbStartScene # CARGA LAS COSAS
  42.         @sprites={}
  43.         @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  44.         @viewport.z=99999
  45.        
  46.         @sprites["bg"]=Sprite.new(@viewport)
  47.         @sprites["bg"].bitmap=RPG::Cache.picture("menu/menubg")
  48.        
  49.         #@totalElements = 7
  50.         radius = 100
  51.        
  52.         counter = 0
  53.         for item in @items
  54.           @sprites["item_#{counter}"] = Sprite.new(@viewport)
  55.           @sprites["item_#{counter}"].bitmap=RPG::Cache.picture("menu/"+item[0])
  56.           @sprites["item_#{counter}"].x=@x_margin + ((@icon_width+@spacing_x) * (counter%@n_icons))
  57.           @sprites["item_#{counter}"].y=@y_margin + ((@icon_height+@spacing_y) * (counter/@n_icons))
  58.           counter += 1
  59.         end
  60.                
  61.         @sprites["selector"]=Sprite.new(@viewport)
  62.         @sprites["selector"].bitmap=RPG::Cache.picture("menu/menu_selection")
  63.         redrawSelector
  64.         @sprites["selector"].z=99999
  65.        
  66.         pbSEPlay("menu")
  67.     end
  68.    
  69.     def pbEndScene # CUANDO TERMINA...
  70.         pbDisposeSpriteHash(@sprites)
  71.         @viewport.dispose if @viewport
  72.     end
  73.        
  74.     def redrawSelector
  75.         @sprites["selector"].x=@x_margin + ((@icon_width+@spacing_x) * (@selected_item%@n_icons))
  76.         @sprites["selector"].y=@y_margin + ((@icon_height+@spacing_y) * (@selected_item/@n_icons))
  77.     end
  78.    
  79.     def addCmd(item)
  80.         return @items.push(item).length-1
  81.     end
  82.    
  83.     def pbUpdate    
  84.         @xcount=999
  85.         @posible1=0
  86.         @posible2=0
  87.         @posible3=0
  88.         loop do
  89.             Input.update
  90.  
  91.         ################### FUNCIONES AQUÍ #######
  92.  
  93.             if Input.trigger?(Input::RIGHT)
  94.                 @selected_item+=1
  95.             end
  96.            
  97.             if Input.trigger?(Input::LEFT)
  98.                 @selected_item-=1
  99.             end
  100.  
  101.             if Input.trigger?(Input::UP)
  102.                 @selected_item-=@n_icons
  103.                 if(@selected_item < 0)
  104.                   @selected_item = 0
  105.                 end
  106.             end
  107.            
  108.             if Input.trigger?(Input::DOWN)
  109.                 @selected_item+=@n_icons
  110.                 if(@selected_item > @items.length-1)
  111.                   @selected_item = @items.length-1
  112.                 end
  113.             end
  114.            
  115.             if (@selected_item < 0)
  116.                 @selected_item = @items.length-1
  117.             end
  118.  
  119.             if (@selected_item >= @items.length)
  120.                 @selected_item=0
  121.             end
  122.  
  123.             if Input.trigger?(Input::C)
  124.               send(@items[@selected_item][2])
  125.             end
  126.            
  127.             break if Input.trigger?(Input::B) # CIERRA EL MENÚ
  128.             break if @exit
  129.            
  130.           redrawSelector
  131.           Graphics.update
  132.         end # loop
  133.        
  134.     end # update
  135.  
  136. end # Cierra la class
  137.  
  138. ###################################################
  139.  
  140. def pbCallMenu2
  141.     scene=Menu2.new
  142.     scene.pbStartScene
  143.     scene.pbUpdate
  144.     scene.pbEndScene
  145. end
  146.  
  147. def exitMenu
  148.   @exit = true
  149. end
  150.  
  151. def openOptions
  152.   if defined?(PokemonOptionScene) == 'constant' && PokemonOptionScene.class == Class
  153.     scene=PokemonOptionScene.new
  154.     screen=PokemonOption.new(scene)
  155.     pbFadeOutIn(99999) { screen.pbStartScreen(true) }
  156.   else
  157.     pbFadeOutIn(99999){
  158.       scene = PokemonOption_Scene.new
  159.       screen = PokemonOptionScreen.new(scene)
  160.       screen.pbStartScreen(true)
  161.     }
  162.   end
  163. end
  164.  
  165. def openBag
  166.   item=0
  167.   scene=PokemonBag_Scene.new
  168.   screen=PokemonBagScreen.new(scene,$PokemonBag)
  169.   pbFadeOutIn(99999) {
  170.   item=screen.pbStartScreen
  171.   if item>0
  172.       pbEndScene
  173.   else
  174.       #@scene.pbRefresh
  175.   end
  176.   }
  177.   if item>0
  178.       Kernel.pbUseKeyItemInField(item)
  179.       exitMenu #Corrección 01-11-2018
  180.       return
  181.   end
  182. end
  183.  
  184. def openParty
  185.   if defined?(PokemonScreen_Scene) == 'constant' && PokemonScreen_Scene.class == Class
  186.     if Input.trigger?(Input::C)
  187.       sscene=PokemonScreen_Scene.new
  188.       sscreen=PokemonScreen.new(sscene,$Trainer.party)
  189.       hiddenmove=nil
  190.       pbFadeOutIn(99999) {
  191.           hiddenmove=sscreen.pbPokemonScreen
  192.           if hiddenmove
  193.               pbEndScene
  194.           else
  195.               #@scene.pbRefresh
  196.           end
  197.       }
  198.       if hiddenmove
  199.           Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
  200.           exitMenu #Corrección 01-11-2018
  201.           return
  202.       end
  203.     end
  204.   else
  205.     if Input.trigger?(Input::C)
  206.       sscene=PokemonParty_Scene.new
  207.       sscreen=PokemonPartyScreen.new(sscene,$Trainer.party)
  208.       hiddenmove=nil
  209.       pbFadeOutIn(99999) {
  210.           hiddenmove=sscreen.pbPokemonScreen
  211.           if hiddenmove
  212.               pbEndScene
  213.           else
  214.               #@scene.pbRefresh
  215.           end
  216.       }
  217.       if hiddenmove
  218.           Kernel.pbUseHiddenMove(hiddenmove[0],hiddenmove[1])
  219.           exitMenu #Corrección 01-11-2018
  220.           return
  221.       end
  222.     end
  223.   end
  224.  
  225.  
  226. end
  227.  
  228. def openTrainerCard
  229.   if defined?(PokemonTrainerCardScene) == 'constant' && PokemonTrainerCardScene.class == Class
  230.     scene=PokemonTrainerCardScene.new
  231.     screen=PokemonTrainerCard.new(scene)
  232.     pbFadeOutIn(99999) {
  233.        screen.pbStartScreen
  234.     }
  235.   else
  236.     scene=PokemonTrainerCard_Scene.new
  237.     screen=PokemonTrainerCardScreen.new(scene)
  238.     pbFadeOutIn(99999) {
  239.        screen.pbStartScreen
  240.     }
  241.  
  242.   end
  243. end
  244.  
  245. def openSave
  246.   if defined?(PokemonSaveScene) == 'constant' && PokemonSaveScene.class == Class
  247.     scene=PokemonSaveScene.new
  248.     screen=PokemonSave.new(scene)
  249.     if screen.pbSaveScreen
  250.       endscene=false
  251.       @exit = true
  252.       #break
  253.     end
  254.   else
  255.     scene=PokemonSave_Scene.new
  256.     screen=PokemonSaveScreen.new(scene)
  257.     if screen.pbSaveScreen
  258.       endscene=false
  259.       @exit = true
  260.       #break
  261.     end
  262.   end
  263. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement