¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 Ayuda con esta mini script el Dom Jul 01, 2012 4:35 pm

rpgmanumaker

avatar
Bueno, he hecho una script muy pequeña y simple ya que estoy intentando aprender RGSS2. Esta es la script:

Código:

class Window_Palaaa < Window_Base
def initialize
super(10,10,200,100)
refresh
end
def refresh
self.contents.clear
#Vida del personaje
self.draw_actor_hp($game_actors[1],1,-5) 
#Magia del personaje
self.draw_actor_mp($game_actors[1],1,19)
#Clase del personaje
self.draw_actor_class($game_actors[1],1,40)
#Nivel del personaje
self.draw_actor_level($game_actors[1],65,40)
#Estado del personaje
self.draw_actor_state($game_actors[1],70,10)
end
end

La script no me da fallos, pero no se actualiza. Me explico, si me quitan vida o gano la barra no se mueve tampoco cambia el lv cuando subo. En definitiva, no se actualiza. Cómo lo hago para solucionarlo

#2 Re: Ayuda con esta mini script el Dom Jul 01, 2012 6:36 pm

orochii

avatar
Bueno, el problema es que creaste la ventana, todo perfecto. Pero necesitas que haya una clase que "la maneje" por decirlo de alguna forma.

Por ejemplo, si es una ventana que se mostrará en el mapa, debes ir a Scene_Map, y hacer que se cree la ventana allí...
Código:
@nombre = Window_Palaaa.new
...Supongo eso lo habrás hecho ya (lo debes poner en la clase Scene_Map, en el método "start").
Ahora, necesitas que haya algo que llame al "refresh"...
Código:
@nombre.refresh
Pones esa línea en el método "update".
Por último necesitas que la ventana se "destruya" al cambiar de escena. Porque si no lo haces, te dará problemas (bugs).
Código:
@nombre.dispose
Eso lo pones igualmente en la clase Scene_Map, en el método "terminate".

Con eso ya debería de usarse debidamente tu ventana C:, salut,
Orochii Zouveleki

#3 Re: Ayuda con esta mini script el Dom Jul 01, 2012 6:45 pm

rpgmanumaker

avatar
Muchas gracias, orochi. Si no te importa podrías decirme si hay alguna manera para hacerlo sin tener que poner eso en el Scene_Map. No sé si me entiendes XD

#4 Re: Ayuda con esta mini script el Dom Jul 01, 2012 11:05 pm

orochii

avatar
En teoría se puede manejar una ventana por medio de engine. Pero no es perfecto. Uno no puede saber por medio de engine cuándo se sale de la escena de mapa, sin manejar dicho cambio de escena por medio de engine también. Y detectar el "reset" (F12) es imposible de manejar con engine.

En fin, que mejor no complicarte la existencia explicándote eso xD. Te haré un ejemplo, tú míralo con detenimiento. Abajo pongo una pequeña explicación de algo que quizá no sepas manejar todavía.
Código:
class Scene_Map < Scene_Base
  alias wpala_start start
  def start
    wpala_start
    @winpala = Window_Palaaa.new
  end

  alias wpala_update update
  def update
    wpala_update
    @winpala.refresh
  end

  alias wpala_terminate terminate
  def terminate
    wpala_terminate
    @winpala.dispose
  end
end

¿Para qué sirve el alias?
Alias es un comando especial (por decirle de alguna forma). Sy función es darle un "sobrenombre" a un método. Por ejemplo, en el ejemplo, le dimos como sobrenombre al "start" original, "wpala_start", y reemplazamos el "start" por uno nuevo, dentro del cual llamamos al original por su sobrenombre. Eso nos permite evitarnos el tener que copiar algunas partes de código.

Dale una ojeada ;D, quizá te dé algunas pistas total estás aprendiendo :P, suerte,
Orochii Zouveleki

PD.: Aunque no soy el mejor ejemplo >8'D pero bueh xD.

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.