Não entendo muito sobre java, mas tenho um projeto na faculdade que é para montar um jogo em 2D que usa física, pensei em montar um jogo de sinuca simples.
Alguém poderia me ajudar, com idéias, não mandando um código pronto, mas passos ou trechos de códigos que podem me auxiliar, links para tutoriais etc.
Agradeço.
Ajuda com jogo
18 Respostas
:shock:
Nunca fiz um game, espero que você consiga fazê-lo!
No momento não me vem nenhuma idéia, mas aconcelho você a estudar um pouco de thread e canvas pra fazer os desenhos. Um jogo de sinuca mesmo simples, acho que vai ter um código um tanto “xarope”.
Se eu achar algum link bacana postarei aqui.
Abraço.
Acho que seria mais fácil vc migrara para a plataforma JME. Provavelmente vai achar bastante API para te ajudar com o gráfico.
O ViniGodoy que manja bem dessas coisas.
Olha o Blog dele:
se vc não manja muiiiittooo de fisica esqueça fazer um jogo de sinuca… pq tem muitos calculos angulares… dependendo da direção, angulo e força a bola tem um comportamento diferente… isto exige muitos calculos fisicos complexos…
JME não é bom para o começo, e é uma engine 3D e não 2D.
Um jogo de sinuca não é tão difiçil de fazer usando apenas o Graphics2D.
(Não incluo animações de bola girando, e mais algumas coisas)
Valeu galera, então to vendo isso dai, porque é assim, a inteção dos professores é:
-Utilização de listas ligadas
-Usar física
-Usar o canvas ou algo parecido, interface gráfica bem básica mesmo, os professores não estão sem importando com a parte gráfica
-Leitura de dados de arquivo texto
-Inserção de número variável de objetos. Ou seja, deve haver um método para que ele, por exemplo no meu caso, fique criando varias bolas, ou outros objetos, para que se possa comparar o processamento de pouco ou muitos objetos
Eu não estou interessado muito na parte gráfica, pelo menos não agora, estou querendo entender mais sobre a física que está envolvendo o jogo de sinuca. Seria uma coisa simples, força, ângulo entre as bolas, trajetória das bolas, velocidade das bolas.
Nada complexo do tipo efeitos na bola, etc.
Obrigado pela ajuda.
e é uma engine 3D e não 2D.
Como assim?
Então, como os caras faziam no Master System!?
:shock: vai fkar um codigo irado passa pra nois ae depois de pronto isso se tu conseguir fazer vlw
Para começar a brincar com a física qui algumas coisas importantes sobre oque voce precisa
Para jogos de sinuca, conhecer a lei da conservação da quantidade de movimento é fundamental.
http://educar.sc.usp.br/sam/quantidade_movimento_roteiro.html
editado - acabei de achar um link bastante interessante sobre conservação do momento linerar e colisões. Tem até um pequeno applet!
http://www.if.ufrgs.br/tex/fis01043/20042/Luciano/colisoes.html
e é uma engine 3D e não 2D.Como assim?
Então, como os caras faziam no Master System!?
JME que falaram não é a Java Monkey Engine??
É uma engine que usa o OpenGL para fazer jogos 3D em java
Valeu galera, atualmente estou ocupado com outros trabalhos da facul, mas estou lendo esses materiais sobre a física envolvida que vocês postaram aqui.
Sim, depois posso postar o código quando ficar pronto, mas só depois de terminar a avaliação, caso contrário o professor pode achar que foi plágio, ou alguém pode copiar.
Uma sugestão (desculpe a demora para postar, só vi seu tópico agora).
Faça um jogo mais simples. Um de sinuca é realmente complicado!
Uma sugestão mais fácil seria fazer o Moon lander, ou algo similar ao Scorched Earth ou como o Bubble Trouble, . 
Finalmente, outra sugestão seria fazer algo similar ao Batalha Estelar (link no meu site), onde as naves se movem com inércia.
Outra coisa… estude sobre vetores e álgebra vetorial. Vai te facilitar ENORMENTE o trabalho. Monte uma classe Vector2D, e então você poderá utiliza-la para somar e subtrair forças, à vontade. Eu já montei uma classe assim e tenho um artigo sobre o assunto em C++, mas pode ser facilmente adaptado para Java.
E, definitivamente, não use tecnologias 3D. Se for fazer para jogos, use o Java 2D mesmo, como falou o Mark. Ótimos tutoriais para começar são esses três:
http://www.cokeandcode.com/tutorials
http://java.sun.com/j2se/1.5.0/docs/guide/2d/spec/j2d-bookTOC.html
http://fivedots.coe.psu.ac.th/~ad/jg/
JME que falaram não é a Java Monkey Engine??
É uma engine que usa o OpenGL para fazer jogos 3D em java
É sim. Ele confundiu com J2ME, que é o Java Mobile Edition.
Ele é que foi usado no Master System.
Mas também, com nomes tão parecidos, não tem como não confundir!!!
Hmm…
Realmente está difícil…pior que não posso mais muda…meus professores…todos tao falando que sinuca e o jogo mais dificil de faze…aHha
Mas entao…
Como que eu poderia calcular a direcao que a bola vai apos uma colisao?
Por exemplo…dependendo do angulo que elas se colidem a bola iria para uma certa direcao.
2 ) o
-
o
Supondo que a bola 1 esta indo em linha reta para cima… a bola 2 ira para uma direcao vertical direita cima…e nao acompanhar a bola 1 em linha reta na direcao para cima.
valeu vo dar um lida aki
Ae ta foda msm…me arrependi de te escolhido sinuca HASUHASU…axo q vo i mto mal nesse projeto.
Entao, um problema que surgiu:
FDeltaTempo = mV -> V = ( F*DeltaTempo )/m
Dependendo da velocidade ele pode dar um pau no jogo:
Supondo 2 bolas em linha reta…b1…b2
b1 se move com uma velocidade de 6 pixel…a b2 esta parada
b1 esta no pixel x = 5, b2 esta no pixel x = 10
entao no proximo quadro a b1 vai estar em cima da b2…e isso meio que trava meu jogo num loop infinito…pois uma colide com a otra e fika nisso…
Como posso tratar isso?