Otimizar esse código só por diversão

21 respostas
VictorMatuk

To enviando o Código fonte em anexo, fiz esse programa inútil só por diversão e pra saber como você fariam o mesmo programa.
Só compilar tudo e executar o Main


Adicionada a versão 2.0 com o código que nosso amigo wellington.nogueira postou.
Modificações: Pingos de cores randomicas de azul, tamanhos randomicos, fps visualizado na tela.

21 Respostas

adriano_si

Cara… muito bacana a brincadeira

você está de parabéns… deve ter aprendido pacas fazendo isso… ou já foi prática do conhecimento adiquirido ??? Se foi, parabéns ao dobro…

Já pensou em fazer um joguiinho cara ?? Aqueles firmes no estilo Atari ???

Abs []

Marky.Vasconcelos

Que maneiro!

Eu acho que o que eu faria de diferente é usar um sistema de particulas para tudo isso, mas ta muito fera o resultado.

Parabéns.

Kanin_Dragon

Jovem,

Legal a aplicação e vou ver o que posso otimizar e posto resultado.

abs,

caio.gaspar

Cara,

ficou muito massa… parabéns…

Ironlynx

E uns raios espocando também ficaria show de bola.

Victor, bacana o resultado.Bem criativo.

VictorMatuk

adriano_si -> aprendi a um tempão já, tentei desenvolver jogos mas sempre paro na parte do design, não sou mto bom pra desenhar os sprites e etc =S. O conceito para a criação de jogos e a prática eu já peguei, incluindo em rede (a parte em rede ainda deve ser otimizada e muito). Valeu!

Marky.Vasconcelos -> Sistema de Partículas… como é isso?

Kanin Dragon -> To a espera, nem precisa ser otimização, pode ser só a sua maneira de fazer

caio.gaspar -> obrigado xD

Ironlynx -> vou colocar os raios “espocando” e faço o upload auhau, valeu!

ViniGodoy

Vou atualizar o meu particles e fazer uma vesãozinha desse tb.

Só que, se vc queria propor uma otimização, deveria também propor uma forma de medição, como contar os FPSs do programa.

davidbuzatto

Gostei :slight_smile:

Marky.Vasconcelos

ViniGodoy é o cara certo para falar mais sobre isso.

Eu só dei uma olhada e entendi como funciona o sistema de particulas dele.

ViniGodoy

Você fez um sistema de partículas, ainda que simples.

Um sistema assim controla uma classe, que se desloca pela tela através de regras simples (partícula). Entre os atributos da particula, podemos incluir: cor, formato, forças que sofre, etc.

Existe uma classe que é o gerador, ou emissor de partículas. Ela gera partículas num intervalo de tempo estipulado, e também controla o processamento e desenho da partícula. O gerador de partículas terá atributos como: Local e forma da origem das partículas, forças que hajam sobre as partículas como um todo, lista de partículas vivas, etc.

Se quiser ver o exemplo do meu gerador de partículas, dê uma olhada nesse link:
http://www.pontov.com.br/files/outros/vinigodoy/particles/particles.html

Todos esses efeitos foram gerados pela mesma classe geradora de partículas.

Os sistemas de partículas foram inicialmente introduzidos para o filme “A Ira de Khan”, do Star Trek. O pessoal da LucasFilm criou esse efeito, juntamente com o conceito de color blending (feito pela Siggraph) e a IrisGL, que no futuro viria a se tornar a OpenGL. Se quiser ver o artigo que introduziu o conceito de partículas, veja:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.5878&rep=rep1&type=pdf

Outro bom artigo sobre o assunto:
http://www.double.co.nz/dust/col0798.pdf

VictorMatuk

Show Vini! O Lance sobre controlar fps eu já vi nos livros de java games que comprei, chei meio chato, se fosse algum sistema de médio porte eu faria obrigatoriamente, mas como era só brincadeira nem fiz, mas não sei fazer se tivesse que fazer, ia ter que pegar o livro e estudar essa parte e bla bla bla

ViniGodoy

Não falei em controlar o FPS, só em medi-lo. Basicamente é contar quantas vezes seu código loop é executado em um segundo. Quanto mais otimizado for o código, mais esse contador deve mostrar.

VictorMatuk

Não falei em controlar o FPS, só em medi-lo. Basicamente é contar quantas vezes seu código loop é executado em um segundo. Quanto mais otimizado for o código, mais esse contador deve mostrar.

Hmmmm entendi, valeu pela dica, agora peguei a idéia do que você tinha falado.

ViniGodoy

Isso mesmo. Veja a taxa do FPS do Particles ali na sua máquina. :slight_smile:

VictorMatuk

Fala! Coloquei uma versão 2.0 da chuva usando a classe FPS enviada pelo nosso amigo wellington.nogueira. Tá ficando bom!

P

Um Particle System em Javascript:

http://jarrodoverson.com/static/demos/particleSystem/#0,basic:Sv1(2000|1|0|0|1|E360,230:2,0:8:-1:0.10:4|F455,199:-140)

Rodei no Chrome.

douglaskd

muito bem feito!

W

galerinha, não riem da minha cara… :oops:

sou novato por aqui, e pretendo começar agora nessa area de programação…

tenho instalado o JDK no meu micro win xp…

consegui visualizar o cod. que nosso amigo postou nos arquivos…

mas a pergunta é…

o que vocês estão vendo que eu não estou??

cade os raios coloridos e tals… rsss :shock:

só to vendo a linha de comando!! :?:

isso ae galera…

abraços a todos

E

O JDK não inclui uma IDE. Você pode usar uma IDE como o Eclipse ou o NetBeans.

W

ok… baixando eclipse…

Obrigado

WellingtonRamos
Só por curiosidade, medir FPS seria algo como isso?
class FPS {
	
	final long startTime =System.currentTimeMillis();
	long actualTime;
	long beforeMarcTime = startTime;
	
	int count = 0;
	
	public void frameCount() {
		actualTime = System.currentTimeMillis();
		if(actualTime >= beforeMarcTime + 1000) {//Passou 1 segundo
			beforeMarcTime = actualTime;
			System.out.println(count);
			count = 0;
		} else {
			count ++;
		}
	}
	
}
E o uso:
public void run() {
		FPS fps = new FPS(); //Criada uma classe contadora.
		while(true) {
			fps.frameCount(); //Incrementa contagem
			executarLogica();
			repaint();
			try {Thread.sleep(15);} catch (InterruptedException e) {e.printStackTrace();}
		}
	}
No meu computador, resultou numa média de 64 fps (se eu fiz certo).
Criado 5 de maio de 2011
Ultima resposta 6 de mai. de 2011
Respostas 21
Participantes 13