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!
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 ?
DavidUser
A melhor alternativa para seu problema parece ser o uso de RMI, busque mais a respeito.
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.
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.
Dallagnol
vamos por parte, pra começar
como conectar dois clients na mesma tela do jogo ?
alguém de um exemplo por favor.
Dallagnol
essa que é a dificuldade, eu preciso de exemplo , ver como faz essas chamadas… sem isso não vou conseguir fazer.
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 ?
Dallagnol
OK vlw pessoal
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.
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 ?
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);
WellingtonRamos
Pode ser sockets também. Tem bastante tutorial na net sobre isso.
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…