Nesta aula iremos aprender a criar Scenes. Scenes são classes que possuem uma interação com o jogador, eu costumo dizer que são a alma dos jogos, a ideia delas está amplamente ligada à janelas, pois somente as janelas não fazem a interação.
- Introdução
Antes de mais nada saiba que o nome Scene é uma convenção, você pode por qualquer nome que quiser na sua classe, porém quando se põe Scene fica mais claro o que ela é.
No RGSS3 há a classe mãe Scene_Base, que facilita muito a nossa vida, pois precisamos apenas chamar os métodos básicos e não criá-los do zero.
class Scene_Teste < Scene_Base
def start
super
end
end
O método obrigatório é o start, ele faz rodar toda a janela.
Chama-se uma Scene da seguinte forma:
SceneManager.call(Nome_Da_Scene)
Note que não há necessidade de por .new pois o programa se encarrega disso.
Obviamente se você chamar o script acima verá apenas uma tela preta permanente.
Vamos adicionar um comando de voltar ao pressionar ESC:
class Scene_Teste < Scene_Base
def start
super
end
def update
super
return_scene if Input.trigger?(:B)
end
end
Sempre que precisar checar se algo é cumprido ou algo do tipo, que será necessário repetir várias vezes, ou um valor atingir certo número, usa-se o método update.
Neste, tudo será repetido em um determinado tempo, no caso será sempre checada a condição de pressionada a tecla ESC (usa-se o símbolo :B) e chamamos e método return_scene que retorna a scene anterior.
- Adicionando uma janela
Para adicionarmos uma janela usamos o método start, pois será criada apenas uma vez e não várias!
class Scene_Teste < Scene_Base
def start
super
@window = Window_Teste.new(0,0,200,200)
end
def update
super
return_scene if Input.trigger?(:B)
end
end
Agora vamos adicionar um método para apagar a janela quando sairmos da Scene.
class Scene_Teste < Scene_Base
def start
super
@window = Window_Teste.new(0,0,200,200)
end
def update
super
return_scene if Input.trigger?(:B)
end
def terminate
super
@window.dispose
end
end
Este método é chamado terminate. O comando dispose é o que apaga a janela.
Por enquanto é isso, na próxima aula vamos usar um exemplo envolvendo tudo que aprendemos nas últimas aulas!
Nenhum comentário:
Postar um comentário