Olá novamente, gostaria de saber se existem classes equivalentes a essas usadas em C# para que eu possa implementar esse algoritmo em Java e se essa abordagem é interessante:
using System;
using System.Diagnostics;
namespace GameLoopTemplate {
class Program {
static void GameLoop(Menu menu, int FPS) {
Stopwatch timer = new Stopwatch();
int before;
int now;
bool refresh = true;
bool done = false;
ConsoleKeyInfo userKey;
int refreshAfter;
switch(FPS) {
case 30:
refreshAfter = 32;
break;
case 60:
default:
refreshAfter = 16;
break;
}
timer.Start();
before = (int)timer.ElapsedMilliseconds;
while(!done) {
now = (int)timer.ElapsedMilliseconds;
if(Console.KeyAvailable) {
userKey = Console.ReadKey(true);
if(menu.receiveKey(userKey)) {
done = true;
}
}
if((now - before) > refreshAfter) {
refresh = true;
before = now;
}
if(refresh) {
Console.Clear();
menu.show();
refresh = false;
}
}
timer.Stop();
}
static void Main(string[] args) {
Console.CursorVisible = false;
string[] mainMenuText = new string[] {
"Novo Jogo\n",
"Carregar Jogo\n",
"Opções\n",
"Sair\n"
};
Menu mainMenu = new Menu(4, mainMenuText);
GameLoop(mainMenu, 30);
}
}
}
Aprendi a controlar o game loop através do site PontoV, meu mais sinceros agradecimentos ao Vinicius Godoy (ViniGodoy) e ao pessoal que postou no PontoV. Qual o ponto fraco do meu código? Terei algum problema depois, pois sou iniciante em Java e desenvolvimento de jogos.