Pessoal, tenho o jogo feito é o campo minado que quando achada uma mina ele coloca uma bandeira em cima e soma na pontuação do jogador, só que não sei como fazer o jogo multiplayer
o jogo já está feito , só falta colocar ele como cliente/servidor e criar os player e pontuação.
gostaria de algum tutorial ou alguém que já tenha feito poderia me enviar o projeto para mim olhar como foi feito.
obrigado.
Velho, não tenho isso não. Posso te aconselhar a fazer, sei que não é difícil. Além de aprender muito, você personaliza do jeito que você quer. De uma procurada na net. Tem muito conteúdo!!
Boa sorte!
D
Dallagnol
por exemplo, gostaria de um exemplo de uma servidor e um cliente que quando iniciado o servidor ele tenha que esperar dois jogadores se conectarem e ai sim abrir a tela de jogo…
alguém ?
D
DavidUser
A melhor alternativa para seu problema parece ser o uso de RMI, busque mais a respeito.
D
Dallagnol
então me achem um exemplo desse tipo, eu procurei, (um exemplo que faça um tela de jogo atualizar para os dois cliente ) ,sincronizar eles na mesma tela , não achei eu so acho de troca de msg e essas CHAT e não sei o que.
D
DavidUser
Tudo sempre vai se basear em trocas de mensagens você tem que abstrair mais.
Mas creio que RMI seja uma boa pois nesse caso a interação dos clientes deve ser utilizar uma interface, mais transparente.
D
Dallagnol
vamos por parte, pra começar
como conectar dois clients na mesma tela do jogo ?
alguém de um exemplo por favor.
D
Dallagnol
essa que é a dificuldade, eu preciso de exemplo , ver como faz essas chamadas… sem isso não vou conseguir fazer.
D
Dallagnol
packageaplicacao;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;publicclassServer{staticServerSocketserverSocket;staticSocketsocket;staticDataOutputStreamout;staticDataInputStreamin;staticPlayers[]player=newPlayers[2];publicstaticvoidmain(String[]args)throwsException{System.out.println("Starting server..");serverSocket=newServerSocket(7777);System.out.println("ServerStarted");while(true){socket=serverSocket.accept();for(inti=0;i<2;i++){System.out.println("Conectado com "+socket.getInetAddress());out=newDataOutputStream(socket.getOutputStream());in=newDataInputStream(socket.getInputStream());if(player[i]==null){player[i]=newPlayers(out,in,player);Threadthread=newThread(player[i]);thread.start();break;}}}}}classPlayersimplementsRunnable{DataOutputStreamout;DataInputStreamin;Players[]player=newPlayers[2];Stringname;publicPlayers(DataOutputStreamout,DataInputStreamin,Players[]player){this.out=out;this.in=in;this.player=player;}@Overridepublicvoidrun(){try{name=in.readUTF();}catch(IOExceptione1){// TODO Auto-generated catch blocke1.printStackTrace();}while(true){try{Stringmessage=in.readUTF();for(inti=0;i<2;i++){if(player[i]!=null){player[i].out.writeUTF(name+":"+message);}}}catch(IOExceptione){this.out=null;this.in=null;}}}}
A classe cliente está logo abaixo :
packageaplicacao;importjava.io.DataInputStream;importjava.io.DataOutputStream;importjava.io.IOException;importjava.net.Socket;importjava.util.Scanner;publicclassClient{staticSocketsocket;staticDataInputStreamin;staticDataOutputStreamout;publicstaticvoidmain(String[]args)throwsException{socket=newSocket("localhost",7777);in=newDataInputStream(socket.getInputStream());out=newDataOutputStream(socket.getOutputStream());Inputinput=newInput(in);Threadthread=newThread(input);thread.start();Scannersc=newScanner(System.in);System.out.println("Digite seu nome : ");Stringname=sc.nextLine();out.writeUTF(name);while(true){StringsendMessage=sc.nextLine();out.writeUTF(sendMessage);}}}classInputimplementsRunnable{DataInputStreamin;publicInput(DataInputStreamin){this.in=in;}@Overridepublicvoidrun(){while(true){Stringmessage;try{message=in.readUTF();System.out.println(message);}catch(IOExceptione){// TODO Auto-generated catch blocke.printStackTrace();}}}}
agora eu pergunto como fazer um jogo campo minado que ja está implementado iniciar para os dois clientes e atualizar seus movimento , ta ai o que tenho mas não sei utilizar alguém se puder ?
D
Dallagnol
OK vlw pessoal
J
javaflex
Pesquise sobre o que falaram para usar. Em pesquisa rápida achei:
O resto vai ser sua lógica, estudos, pesquisas e tentativas para evoluir e poder perguntar pontualmente novas dúvidas.
D
Dallagnol
como eu chamaria um objeto campo minado e colocaria somente 2 client nele e cada alteracao feita por um cliente o outro recebe no mesmo tempo ?
V
ViniGodoy
Dizer que falta “só” o multiplayer é como dizer que para um carro funcionar, falta “só” construir o motor.
Não tem nada de trivial, nem de fácil para inserir um módulo multiplayer. Provavelmente, boa parte da organização das suas classes vai mudar.
Infelizmente, não existe um game.setMultiplayer(true);
W
WellingtonRamos
Pode ser sockets também. Tem bastante tutorial na net sobre isso.
W
WellingtonRamos
Dallagnol:
então me achem um exemplo desse tipo, eu procurei, (um exemplo que faça um tela de jogo atualizar para os dois cliente ) ,sincronizar eles na mesma tela , não achei eu so acho de troca de msg e essas CHAT e não sei o que.
Em vez de textos de bate-papo (vulgo chat) você passa a transmitir o que quer que seja atualizado. Boa parte da inteligência e toda a interação visual fica no cliente. Só se transmite o absolutamente necessário.
Ou seja, os exemplos ajudam o suficiente, o resto você vai ter que fazer mesmo…