Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Flute
- def pbStartScene
- @sprites={}
- @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
- @viewport.z=99999
- @sprites["menubg"]=Sprite.new(@viewport)
- @sprites["menubg"].bitmap=RPG::Cache.picture("flute")
- @sprites["menubg"].x=0
- @sprites["menubg"].z=0
- pbInitRafaTextSystem
- textos3=[]
- textos3.push([_INTL("Play the flute"),192,30,false,@baseColor,@shadowColor])
- #textos3.push([_INTL("TEXTO"),X,Y,false,baseColor,shadowColor])
- pbDrawTextPositions(@overlay3,textos3) # LO IMPRIME EN PANTALLA
- end
- def pbInitRafaTextSystem # INICIA EL SISTEMA DE TEXTOS
- @sprites["overlay3"]=BitmapSprite.new(Graphics.width,Graphics.height,@viewport)
- @sprites["overlay3"].z = 99999
- @overlay3=@sprites["overlay3"].bitmap
- @sprites["overlay3"].zoom_x=1
- @sprites["overlay3"].zoom_y=1
- @sprites["overlay3"].bitmap.clear
- @baseColor=Color.new(255, 255, 255) # COLOR DE FONT
- @shadowColor=Color.new(42,42,42) # COLOR DE SOMBRA
- pbSetSystemFont(@sprites["overlay3"].bitmap)
- end
- def pbEndScene # CUANDO TERMINA...
- pbDisposeSpriteHash(@sprites)
- @viewport.dispose if @viewport
- end
- def pbUpdate(n,i)
- @xcount=0
- @posible1=0
- @posible2=0
- @posible3=0
- total = 0
- count = 0
- correct = 0
- play= []
- songs = []
- #Respuestas posibles: UP, DOWN, LEFT, RIGHT
- link = "PBS\\songs.txt"
- f = open(link,'r+')
- f = f.read
- lines = f.split(/\n/)
- for line in lines
- splited = line.split(',')
- songs.push(splited)
- end
- loop do
- Graphics.update
- Input.update
- if !songs[n]
- Kernel.pbMessage(_INTL("Song #{n} doesn't exist."))
- break
- end
- #FUNCIONES AQUÍ#
- 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
- if Input.trigger?(Input::UP)#lo que pasa si pulsamos UP
- play.push('UP')
- total += 1
- @sprites[total]=Sprite.new(@viewport)
- @sprites[total].bitmap=RPG::Cache.picture("key_UP")
- @sprites[total].x=40*total
- @sprites[total].y=180
- @sprites[total].z=1
- end
- if Input.trigger?(Input::DOWN)#lo que pasa si pulsamos DOWN
- play.push('DOWN')
- total += 1
- @sprites[total]=Sprite.new(@viewport)
- @sprites[total].bitmap=RPG::Cache.picture("key_DOWN")
- @sprites[total].x=40*total
- @sprites[total].y=180
- @sprites[total].z=1
- end
- if Input.trigger?(Input::LEFT)#lo que pasa si pulsamos LEFT
- play.push('LEFT')
- total += 1
- @sprites[total]=Sprite.new(@viewport)
- @sprites[total].bitmap=RPG::Cache.picture("key_LEFT")
- @sprites[total].x=40*total
- @sprites[total].y=180
- @sprites[total].z=1
- end
- if Input.trigger?(Input::RIGHT)#lo que pasa si pulsamos RIGHT
- play.push('RIGHT')
- total += 1
- @sprites[total]=Sprite.new(@viewport)
- @sprites[total].bitmap=RPG::Cache.picture("key_RIGHT")
- @sprites[total].x=40*total
- @sprites[total].y=180
- @sprites[total].z=1
- end
- if Input.trigger?(Input::B)#si pulsamos la X nos pregunta si queremos salir
- command=Kernel.pbMessage(_INTL("Cancel?"),[
- _INTL("Yes"),_INTL("No")
- ],-1)
- if command==0 # Read
- break
- end
- end
- else
- while count < songs[n].length #se recorre la lista de 'dígitos' en la respuesta y el patrón para comprobar que es correcto
- if play[count] == songs[n][count]
- correct += 1
- end
- count += 1
- end
- 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
- Kernel.pbMessage(_INTL("You are a song master."))
- $game_switches[i] = true
- break
- else #sino la respuesta es incorrecta
- Kernel.pbMessage(_INTL("You played it very bad."))
- break
- end
- end
- end
- end
- ################
- end #CIERRA LA CLASE
- class FluteScene
- def initialize(scene,n,i)
- @scene=scene
- @n = n
- @i = i
- end
- def pbStartScreen
- @scene.pbStartScene
- @scene.pbUpdate(@n,@i)
- @scene.pbEndScene
- end
- end
- def pbCallFlute(n,i) #se llama al script, 'n' e 'i' son valores numéricos
- scene=Flute.new
- screen=FluteScene.new(scene,n,i)
- screen.pbStartScreen
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement