Um tempo atrás eu postei um sistema de gerenciamento de janelas porém estava inacabado, hoje como estou voltando a programar a pedido de um amigo, resolvi refazer o sistema e divulga-lo completo e sem erros.
Comandos
Exemplos:
Como instalar?
Vá no script [SC] Net Rmxp Hud, abaixo de:
Para que serve?
O sistema permite um gerenciamento mais limpo e eficaz das janelas do jogo evitando muitas vezes blocos enormes de código. Fora isso, ainda se tem comando pré-definidos que podem ser usados no decorrer do jogo.
Finalizando...
Espero que tenham gostado, e uma dica: Se quer seu jogo mais limpo, use este sistema e possivelmente outros gerenciadores de código como scenes e demais.
O sistemas não é perceptível por screens.
Comandos
WindowManager.newWindow(t, c) # t = Título da janela, c = Classe correspondente
WindowManager.updateWindows # Atualiza todas as janelas ativas
WindowManager.disposeWindows # Da dispose em todas as janelas
WindowManager.showWindow(t) # Exibe a janela (t = título) na tela
WindowManager.closeWindow(t) # Fecha a janela (t = título) e a inativa
WindowManager.listWindows # Exibe o nome e classe de todas as janelas criadas
WindowManager.disposeWindow(t) # Da dispose em determinada janela
WindowManager.closeAll # Fecha todas as janelas abertas
WindowManager.Window(t) # Chama a classe X para poder usar métodos internos
Exemplos:
- Código:
WindowManager.newWindow("X", WindowX.new)
WindowManager.showWindow("X")
WindowManager.closeWindow("X")
WindowManager.disposeWindow("X")
WindowManager.listWindows
Como instalar?
Vá no script [SC] Net Rmxp Hud, abaixo de:
- Código:
def dispose
- Código:
WindowManager.disposeWindows
- Código:
def update
- Código:
WindowManager.updateWindows
- Código:
def initialize(x, y, width, height)
super()
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
end
- Código:
def show
self.visible = true
self.active = true
end
def close
self.active = false
self.visible = false
end
- Código:
#==================================================================
# WindowManager - Por Paulo Soreto
#==================================================================
module WindowManager
@windows = {}
def self.newWindow(t, c)
@windows[t].nil? ? @windows[t] = c : return
end
def self.updateWindows
@windows.each{|w| w[1].update if w[1].active}
end
def self.disposeWindows
for w in @windows
w[1].dipose
@windows.delete(w[0])
end
end
def self.showWindow(t)
return if @windows[t].nil?
@windows[t].show
end
def self.closeWindow(t)
return if @windows[t].nil?
@windows[t].visible ? @windows[t].close : return
end
def self.disposeWindow(t)
return if @windows[t].nil?
@windows[t].dispose
@windows.delete(t)
end
def self.listWindows
strWindows = ""
@windows.each{|w| strWindows += w[0] + " >> " + w[1].to_s + "\n"}
print strWindows
end
def self.closeAll
@windows.each{|w| w[1].close if w[1].visible}
end
def self.Window(t)
return @windows[t] unless @windows[t].nil?
end
end
Para que serve?
O sistema permite um gerenciamento mais limpo e eficaz das janelas do jogo evitando muitas vezes blocos enormes de código. Fora isso, ainda se tem comando pré-definidos que podem ser usados no decorrer do jogo.
Finalizando...
Espero que tenham gostado, e uma dica: Se quer seu jogo mais limpo, use este sistema e possivelmente outros gerenciadores de código como scenes e demais.
O sistemas não é perceptível por screens.
Última edição por Paulo Soreto em Sex Fev 07, 2014 11:05 pm, editado 2 vez(es)