Os arquivos que contém o código do post anterior, são:
Main
SceneManager
Scene_Base
Se você quer realmente aprender, sugiro que estude todos os arquivos de script do seu RPG Maker, mesmo que você não saiba o que cada linha de código significa, tente entender para o que serve, antes de tudo, você precisa de familiarizar com a estrutura.
Quanto mais você ler todos os arquivos, mais claro as coisas vão ficar.
Referente ao loop, vamos fazer essa sua classe teste exibir no console a mensagem 'atualizando....' enquanto você estiver no mapa do jogo.
Vamos criar a classe com o nosso update.
(Adicione um novo Arquivo com o nome 'Teste' em baixo de Materials ou Materiais se aí estiver em português)
class Teste
def update
p 'atualizando....'
end
end
Agora vamos achar a Scene do Mapa: Scene_Map
O primeiro método que a Scene_Map executa, é o start, sabendo disso, vamos criar uma instância da nossa classe dentro do start da Scene_Map:
$teste = Teste.new
O que estamos fazendo é, iniciando a nossa classe quando a Scene_Map é iniciada (isso acontece apenas uma vez).
ficou assim:
def start
super
SceneManager.clear
$game_player.straighten
$game_map.refresh
$game_message.visible = false
create_spriteset
create_all_windows
$teste = Teste.new
@menu_calling = false
end
Agora precisamos exibir a mensagem várias vezes enquanto o Herói estiver no mapa, para isso vamos usar o loop que você perguntou.
Mas aí teremos que criar um loop dentro do update né? Não
a Classe Scene_Map já tem um update próprio, com várias coisas, veja:
def update
super
$game_map.update(true)
$game_player.update
$game_timer.update
@spriteset.update
update_scene if scene_change_ok?
end
O que vamos fazer é chamar o update da nossa classe Teste, dentro do update da Scene_Map.
Como eu disse anteriormente o update da Scene_Map já está dentro de um loop, colocando o nosso update da classe 'Teste' lá dentro, ele também estará em loop.
Chame o update da classe 'Teste' dentro do update da classe Scene_Map:
$teste.update
O update da Scene_Map ficou assim:
def update
super
$game_map.update(true)
$game_player.update
$game_timer.update
@spriteset.update
$teste.update
update_scene if scene_change_ok?
end
Agora abra o seu jogo e veja que no console vai aparecer varias vezes o texto: 'atualizando....' enquanto você permanecer no mapa.