[Resolvido][RGSS2]Duvida com tempo de windows
4 participantes
Página 1 de 1
[Resolvido][RGSS2]Duvida com tempo de windows
Como posso criar uma window que após ser chamada, tenha um determinado tempo pra sumir?
Eu sei que elas ja somem automaticamente, mas demora um pouco, eu gostaria de no maximo 5 segundos...
E tambem gostaria de saber se há algo que controle o numero de vezes que a janela será aberta, por exemplo:
-Chamei uma vez com "Chamar Script";
-Chamei do mesmo modo e esta segunda sobrepôs a primeira.
Se houver algo assim me informem, please.
OBS: Caso seja do interesse de alguem, isto vai servir para o script de troféis in-game que eu fiz pedido à alguns dias e então resolvi fazer.
Eu sei que elas ja somem automaticamente, mas demora um pouco, eu gostaria de no maximo 5 segundos...
E tambem gostaria de saber se há algo que controle o numero de vezes que a janela será aberta, por exemplo:
-Chamei uma vez com "Chamar Script";
-Chamei do mesmo modo e esta segunda sobrepôs a primeira.
Se houver algo assim me informem, please.
OBS: Caso seja do interesse de alguem, isto vai servir para o script de troféis in-game que eu fiz pedido à alguns dias e então resolvi fazer.
Última edição por kako92 em Ter Ago 17, 2010 5:03 pm, editado 1 vez(es)
Re: [Resolvido][RGSS2]Duvida com tempo de windows
na scene de trofeis, no def start, crie uma variavel por exemplo
ja para sobrepor é mais simples
no def refresh da window coloque
eu tive a mesma dificuldade fazendo uma hud
- Código:
Scene_trofeu < Scene_Base
def start
@janela = Janela.new
end
end
- Código:
@janela.visible = false
- Código:
@janela.visible = true
ja para sobrepor é mais simples
no def refresh da window coloque
- Código:
self.contents.clear
eu tive a mesma dificuldade fazendo uma hud
lasso- Mensagens : 13
Data de inscrição : 29/07/2010
Idade : 27
Re: [Resolvido][RGSS2]Duvida com tempo de windows
Vou testar, ja edito.
Edit:
Não deu muito certo mas eu ja sei porque.
Vou só refazer uma parte aqui e em breve posto pra todos.
Edit2:
Não obtive sucesso
Aqui vai o script pra quem quiser analisar:
Edit:
Não deu muito certo mas eu ja sei porque.
Vou só refazer uma parte aqui e em breve posto pra todos.
Edit2:
Não obtive sucesso
Aqui vai o script pra quem quiser analisar:
- Código:
class Scene_Trophy_Display < Window_Base
def initialize(id)
$trophy_id = id
start
end
def start
@window = Window_Trophy_Display.new($trophy_id)
@window.visible = true
end
def update
@window.update
if Input.trigger?(Input::C)
@window.visible = false
terminate
$scene = Scene_Map.new
end
end
def terminate
@window.dispose
end
end
class Window_Trophy_Display < Window_Base
def initialize(id)
super (343,1,200,75)
$trophy_id = id
self.opacity = 0
@preview = Sprite.new
if Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[0]
@preview.bitmap = Cache.system(Trophy::T_IMG[0][1])
elsif Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[1]
@preview.bitmap = Cache.system(Trophy::T_IMG[1][1])
elsif Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[2]
@preview.bitmap = Cache.system(Trophy::T_IMG[2][1])
elsif Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[3]
@preview.bitmap = Cache.system(Trophy::T_IMG[3][1])
end
@preview.x = self.x + 15
@preview.y = self.y + 20
@preview.z = 100
if Trophy::T_DISPLAY_BACK != nil
self.opacity = 0
@preview_back = Sprite.new
@preview_back.bitmap = Cache.system(Trophy::T_DISPLAY_BACK)
@preview_back.x = self.x
@preview_back.y = self.y
else
self.opacity = 200
end
$game_switches[Trophy::T_DET[$trophy_id][2]] = true
update
end
def update
self.contents.clear
Graphics.update
Input.update
@trophy_name = Trophy::T_LIST[$trophy_id]
self.contents.font.color = Color.new(30, 144, 255)
self.contents.font.size = 12
self.contents.font.shadow = Trophy::TEXT_SHADOW
self.contents.draw_text(4, 1, width,WLH,"Você Adquiriu um troféu!", 1)
self.contents.font.color = normal_color
self.contents.font.size = 12
self.contents.draw_text(1, 15, width,WLH,@trophy_name, 1)
end
def finish
self.contents.clear
self.contents.dispose
@preview.dispose
@preview_back.dispose
end
end
Re: [Resolvido][RGSS2]Duvida com tempo de windows
Bom, isso é bem fácil...
Crie a janela normalmente, depois siga esses passos:
- Na def initialize, defina uma variável de instancia chamada tempo.
- Na def update, defina uma condição:
self.visible = false Se @tempo é igual a *Limite de tempo (Em frames)*
E pronto...
Isso é só um pouquinho de lógica... Bem simples..
Até!
Crie a janela normalmente, depois siga esses passos:
- Na def initialize, defina uma variável de instancia chamada tempo.
- Na def update, defina uma condição:
self.visible = false Se @tempo é igual a *Limite de tempo (Em frames)*
E pronto...
Isso é só um pouquinho de lógica... Bem simples..
Até!
Falco- Mensagens : 184
Data de inscrição : 14/07/2010
Re: [Resolvido][RGSS2]Duvida com tempo de windows
Vendo por esse angulo é simples mesmo.
Tentei fazer de varios modos, com repetições, fiz até um cronometro e não deu muito certo.
Mesmo com a sua explicação ainda ficou meio vago pra mim...
Vou tentar corrigir aqui, e mais uma vez, obrigado Falco.
Tentei fazer de varios modos, com repetições, fiz até um cronometro e não deu muito certo.
Mesmo com a sua explicação ainda ficou meio vago pra mim...
Vou tentar corrigir aqui, e mais uma vez, obrigado Falco.
Re: [Resolvido][RGSS2]Duvida com tempo de windows
É, o Falco explicou direitinho, só faltou umas coisinhas:
1°) No update, não esquece de colocar @tempo += 1, se não o tempo não prossegue.
2°) Eu percebi que você definiu a Scene_Trophy_Display filha da Window_Base, o certo não seria da Scene_Base?
1°) No update, não esquece de colocar @tempo += 1, se não o tempo não prossegue.
2°) Eu percebi que você definiu a Scene_Trophy_Display filha da Window_Base, o certo não seria da Scene_Base?
Kyo Panda- Mensagens : 83
Data de inscrição : 28/07/2010
Idade : 31
Re: [Resolvido][RGSS2]Duvida com tempo de windows
Kyo Panda escreveu:É, o Falco explicou direitinho, só faltou umas coisinhas:
1°) No update, não esquece de colocar @tempo += 1, se não o tempo não prossegue.
2°) Eu percebi que você definiu a Scene_Trophy_Display filha da Window_Base, o certo não seria da Scene_Base?
Eu ja tinha feito isso ontem, sobre o window_base foi agada na hora de postar...
Mas tem algo errado que não estou conseguindo corrigir.
Digamos que eu deseje chamar só uma window no Scene_Map, e então se eu apertar um botão qualquer, pode ser B ou C tanto faz, a janela saia da tela.
Vou tentar explicar mais uma vez todo o precesso.
Seguinte: Esta janela tem como função, indicar que um novo troféu foi obtido.
Logo, ela deve aparecer quando isso acontecer, via evento, e após um tempo sumir ou quando um botão for pressionado.
Eu corrigi uns erros no script aqui pra quem quiser analisar novamente:
- Spoiler:
- Código:
class Scene_Trophy_Display < Scene_Base
def initialize(id)
$trophy_id = id
start
end
def start
@window = Window_Trophy_Display.new($trophy_id)
create_menu_background
end
def update
@window.update
if Input.trigger?(Input::C)
@window.visible = false
terminate
end
end
def create_menu_background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.update
end
def terminate
@window.finish
@menuback_sprite.dispose
$scene = Scene_Map.new
end
end
class Window_Trophy_Display < Window_Base
def initialize(id)
super (343,1,200,75)
$trophy_id = id
self.opacity = 0
@preview = Sprite.new
if Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[0]
@preview.bitmap = Cache.system(Trophy::T_IMG[0][1])
elsif Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[1]
@preview.bitmap = Cache.system(Trophy::T_IMG[1][1])
elsif Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[2]
@preview.bitmap = Cache.system(Trophy::T_IMG[2][1])
elsif Trophy::T_DET[$trophy_id][0] == Trophy::T_IMG[3]
@preview.bitmap = Cache.system(Trophy::T_IMG[3][1])
end
@preview.x = self.x + 15
@preview.y = self.y + 20
@preview.z = 100
if Trophy::T_DISPLAY_BACK != nil
self.opacity = 0
@preview_back = Sprite.new
@preview_back.bitmap = Cache.system(Trophy::T_DISPLAY_BACK)
@preview_back.x = self.x
@preview_back.y = self.y
else
self.opacity = 200
end
$game_switches[Trophy::T_DET[$trophy_id][2]] = true
update
end
def update
self.contents.clear
Graphics.update
Input.update
@trophy_name = Trophy::T_LIST[$trophy_id]
self.contents.font.color = Color.new(30, 144, 255)
self.contents.font.size = 12
self.contents.font.shadow = Trophy::TEXT_SHADOW
self.contents.draw_text(4, 1, width,WLH,"Você Adquiriu um troféu!", 1)
self.contents.font.color = normal_color
self.contents.font.size = 12
self.contents.draw_text(1, 15, width,WLH,@trophy_name, 1)
end
def finish
self.contents.dispose
@preview.dispose
@preview_back.dispose
end
end
Edit:
Via evento eu consegui ajustar o tempo. Agora vou só retocar e transformar em script e estará tudo pronto.
Tópicos semelhantes
» [Duvida RGSS2]condição em Module
» Dúvida: RGSS3 ~ [Resolvido]
» [Resolvido ~ Dúvida/Pedido] Edit no script de corrida
» [RGSS2] Pedido/duvida sistema de troféus como os do PS3
» [RMVX Ace][RESOLVIDO]Duvida basica de swithes
» Dúvida: RGSS3 ~ [Resolvido]
» [Resolvido ~ Dúvida/Pedido] Edit no script de corrida
» [RGSS2] Pedido/duvida sistema de troféus como os do PS3
» [RMVX Ace][RESOLVIDO]Duvida basica de swithes
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos