dejo una imagen, en este ejemplo por el momento funciona los puntos 1,2,3,4 y la pelota luego desaparece (tendria que hacer 5,6,7,8)
(en otro ejemplo funcionarian los puntos 8,7,6,5 y la pelota luego desaparece, tendria que hacer 4,3,2,1)
en ambos casos nunca regresa al server.....
alguna idea o sugerencia??
aqui esta el codigo del client PelotaNetClient.java, el codigo del server esta en pastebin porque supera el limite de caracteres del post
PelotaNetServer.java
http://pastebin.com/EUiw9XTV
PelotaNetClient.java
Código Java:
Ver original
package pelotaCS; // creo class y su constructor import pelotaCS.PelotaNetServer; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import javax.swing.*; public PelotaNetClient(){ super("Pelota - Client"); this.setSize(500,400); // this.setLocationRelativeTo(null); this.setLocation(600,40); this.setDefaultCloseOperation(EXIT_ON_CLOSE); conectar(); // me conecto al server this.setVisible(true); }//fin constructor // METODO para la conexion y inicio de la animacion. public void conectar(){ try{ // me conecto al server //obtengo el stream del input del server y doy un output al server } PanelAnimacionClient pan = new PanelAnimacionClient(this,contenedor.getSize()); contenedor.add(pan); } private PelotaNetClient ventana ; private int xPelota = 0; private int yPelota = 0; private int diametroPelota = 40; private int movimiento = 3; private int timerDelay = 10; private boolean derecha,abajo,pelotaPresente,llegadaComunicada ; super(); this.ventana = ventana; this.setSize(dimension); derecha = true; abajo = true; pelotaPresente = false; llegadaComunicada = false; tim.start(); } paint(g); } super.paint(g); bufferVirtuale = createImage(getWidth(),getHeight()); offScreen = bufferVirtuale.getGraphics(); if (pelotaPresente){ offScreen.fillOval(xPelota,yPelota,diametroPelota,diametroPelota); } screen.drawImage(bufferVirtuale,0,0,this); offScreen.dispose(); } if (pelotaPresente){ if (abajo){ if (yPelota > (this.getHeight()-diametroPelota)){ abajo = false; yPelota -= movimiento;// borde alto }else{ yPelota += movimiento; } }else{ if (yPelota <=0){ // borde abajo abajo = true; yPelota += movimiento; }else{ yPelota -= movimiento;// borde abajo } } if (derecha){ if((!llegadaComunicada)&&(xPelota <=(this.getWidth()-diametroPelota))){ try{ ventana.getOutput().writeBoolean(abajo); ventana.getOutput().writeInt(yPelota); llegadaComunicada = true; } }else{ xPelota += movimiento; if (xPelota < this.getWidth()){ pelotaPresente = false; llegadaComunicada = false; } } }else{ // la pelota esta llendo a la izquierda if (xPelota < 0){ // fin ventana izquierda derecha = true; // cambio direccion pasa de derecha a izquierda xPelota -= movimiento; }else{ xPelota += movimiento; } } }else{ boolean direccion = true; int y=0; try{ direccion = ventana.getInput().readBoolean(); y = ventana.getInput().readInt();// espero que llegue la pelota abajo = direccion; //direccion de ingreso derecha = false; // se mueve hacia la izquierda yPelota = y; // coordinadas iniciales de la pelota xPelota = 0; pelotaPresente = true; } } } repaint(); } } return input; } return out; } } //fin de la class palota net client
execPelotaServer.java
http://pastebin.com/sChkag1c
execPelotaClient.java
http://pastebin.com/ft2EbAui
primero hago el run del file execPelotaServer.java y luego del execPelotaClient.java
gracias anticipadas.
salu2