Advertisement
polectron

Combinaciones

Oct 19th, 2016
446
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.75 KB | None | 0 0
  1. class Flute
  2.  
  3.   def pbStartScene
  4.     @sprites={}
  5.     @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  6.     @viewport.z=99999
  7.    
  8.     @sprites["menubg"]=Sprite.new(@viewport)
  9.     @sprites["menubg"].bitmap=RPG::Cache.picture("flute")
  10.     @sprites["menubg"].x=0  
  11.     @sprites["menubg"].z=0
  12.     pbInitRafaTextSystem
  13.     textos3=[]
  14.  
  15.     textos3.push([_INTL("Play the flute"),192,30,false,@baseColor,@shadowColor])
  16.  
  17.     #textos3.push([_INTL("TEXTO"),X,Y,false,baseColor,shadowColor])
  18.    
  19.     pbDrawTextPositions(@overlay3,textos3) # LO IMPRIME EN PANTALLA
  20.      
  21.   end
  22.  
  23.   def pbInitRafaTextSystem # INICIA EL SISTEMA DE TEXTOS
  24.      @sprites["overlay3"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
  25.      @sprites["overlay3"].z = 99999
  26.      @overlay3=@sprites["overlay3"].bitmap
  27.      @sprites["overlay3"].zoom_x=1
  28.      @sprites["overlay3"].zoom_y=1
  29.      @sprites["overlay3"].bitmap.clear
  30.      @baseColor=Color.new(255, 255, 255) # COLOR DE FONT
  31.      @shadowColor=Color.new(42,42,42) # COLOR DE SOMBRA
  32.      pbSetSystemFont(@sprites["overlay3"].bitmap)
  33.   end
  34.  
  35.   def pbEndScene # CUANDO TERMINA...
  36.     pbDisposeSpriteHash(@sprites)
  37.     @viewport.dispose if @viewport
  38.   end
  39.  
  40.   def pbUpdate(n,i)  
  41.     @xcount=0
  42.     @posible1=0
  43.     @posible2=0
  44.     @posible3=0
  45.     total = 0
  46.     count = 0
  47.     correct = 0
  48.     play= []
  49.     songs = []
  50.     #Respuestas posibles: UP, DOWN, LEFT, RIGHT
  51.       link = "PBS\\songs.txt"
  52.       f = open(link,'r+')
  53.       f = f.read
  54.       lines = f.split(/\n/)
  55.      
  56.       for line in lines
  57.         splited = line.split(',')
  58.         songs.push(splited)
  59.       end
  60.      
  61.       loop do
  62.         Graphics.update
  63.         Input.update
  64.         if !songs[n]
  65.           Kernel.pbMessage(_INTL("Song #{n} doesn't exist."))
  66.           break
  67.         end
  68.       #FUNCIONES AQUÍ#
  69.         if total < songs[n].length #cantidad de 'dígitos' por combinación, con un par de cambios se podría hacer que cada combinación tuviese una longitud diferente
  70.         if Input.trigger?(Input::UP)#lo que pasa si pulsamos UP
  71.           play.push('UP')
  72.           total += 1
  73.           @sprites[total]=Sprite.new(@viewport)
  74.           @sprites[total].bitmap=RPG::Cache.picture("key_UP")
  75.           @sprites[total].x=40*total
  76.           @sprites[total].y=180
  77.           @sprites[total].z=1
  78.         end
  79.         if Input.trigger?(Input::DOWN)#lo que pasa si pulsamos DOWN
  80.           play.push('DOWN')
  81.           total += 1
  82.           @sprites[total]=Sprite.new(@viewport)
  83.           @sprites[total].bitmap=RPG::Cache.picture("key_DOWN")
  84.           @sprites[total].x=40*total
  85.           @sprites[total].y=180
  86.           @sprites[total].z=1
  87.         end
  88.         if Input.trigger?(Input::LEFT)#lo que pasa si pulsamos LEFT
  89.           play.push('LEFT')
  90.           total += 1
  91.           @sprites[total]=Sprite.new(@viewport)
  92.           @sprites[total].bitmap=RPG::Cache.picture("key_LEFT")
  93.           @sprites[total].x=40*total
  94.           @sprites[total].y=180
  95.           @sprites[total].z=1          
  96.         end
  97.         if Input.trigger?(Input::RIGHT)#lo que pasa si pulsamos RIGHT
  98.           play.push('RIGHT')
  99.           total += 1
  100.           @sprites[total]=Sprite.new(@viewport)
  101.           @sprites[total].bitmap=RPG::Cache.picture("key_RIGHT")
  102.           @sprites[total].x=40*total
  103.           @sprites[total].y=180
  104.           @sprites[total].z=1
  105.         end
  106.        
  107.        
  108.         if Input.trigger?(Input::B)#si pulsamos la X nos pregunta si queremos salir
  109.           command=Kernel.pbMessage(_INTL("Cancel?"),[
  110.             _INTL("Yes"),_INTL("No")
  111.           ],-1)
  112.           if command==0 # Read
  113.             break
  114.           end
  115.         end
  116.         else
  117.           while count < songs[n].length #se recorre la lista de 'dígitos' en la respuesta y el patrón para comprobar que es correcto
  118.             if play[count] == songs[n][count]
  119.               correct += 1
  120.             end
  121.             count += 1  
  122.           end
  123.           if correct == songs[n].length #cuando acaba el búcle, si el número de aciertos(correct) es igual al número de 'dígitos' la respuesta es correcta
  124.             Kernel.pbMessage(_INTL("You are a song master."))
  125.             $game_switches[i] = true
  126.             break
  127.           else #sino la respuesta es incorrecta
  128.             Kernel.pbMessage(_INTL("You played it very bad."))
  129.             break
  130.           end
  131.         end
  132.       end
  133.   end
  134.     ################
  135. end #CIERRA LA CLASE
  136.  
  137. class FluteScene
  138. def initialize(scene,n,i)
  139.  @scene=scene
  140.  @n = n
  141.  @i = i
  142.  
  143. end
  144. def pbStartScreen
  145.  @scene.pbStartScene
  146.  @scene.pbUpdate(@n,@i)
  147.  @scene.pbEndScene
  148. end
  149. end
  150.  
  151. def pbCallFlute(n,i) #se llama al script, 'n' e 'i' son valores numéricos
  152.   scene=Flute.new
  153.   screen=FluteScene.new(scene,n,i)
  154.   screen.pbStartScreen
  155. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement