Migrar game loop de C# para Java

0 respostas
javacsharp
WilliamLycan

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.

Criado 27 de setembro de 2016
Respostas 0
Participantes 1