Foros del Web » Programación para mayores de 30 ;) » Java »

Movimiento

Estas en el tema de Movimiento en el foro de Java en Foros del Web. Buenas tardes, tengo el siguiente código para que al presionar un botón el punto realice un movimiento a la derecha (por ejemplo) pero que el ...
  #1 (permalink)  
Antiguo 12/11/2010, 17:07
Avatar de ivangar  
Fecha de Ingreso: septiembre-2005
Ubicación: méxico df
Mensajes: 99
Antigüedad: 18 años, 6 meses
Puntos: 0
Movimiento

Buenas tardes, tengo el siguiente código para que al presionar un botón el punto realice un movimiento a la derecha (por ejemplo) pero que el movimiento sea uniforme y no como con pausa, saben que puedo moverle?:

import java.awt.*;
import java.awt.event.*;

public class Display extends Canvas implements ActionListener{
private Point center;

public Display(){
center = new Point(50,50);
setBackground(Color.white);
}

public void actionPerformed(ActionEvent e){
//Obtine el rótulo del botón que generó el evento
String direction = e.getActionCommand();
//Mover el punto a la izquierda o derecha, según cual
//botón haya generado el evento
if (direction.equals("Izquierda")){
center.x -=12;
}
else if (direction.equals("Derecha")) {
for(int i=0; i<1000; i++){
center.x +=1;
repaint();
for(int j=0; j<1; j++){
repaint();
}
}
}
else if (direction.equals("Arriba")){
center.y -=12;
}
else if(direction.equals("Abajo")){
center.y +=12;
}
else if (direction.equals("Restaurar")){
center.x =50;
center.y =50;
}
//puesto que se movió el punto, se fuerza una llamada a paint()
//para mostrarlo en su nueva posición
repaint();
}

/** Pinta punto rojo */
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillOval(center.x-5, center.y-5, 10, 10);
}
}

Mil gracias a todos :D
  #2 (permalink)  
Antiguo 12/11/2010, 20:45
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Movimiento

Hola.

Prueba haciendo el desplazamiento en un thread independiente

http://download.oracle.com/javase/1....ng/Thread.html
http://www.webtaller.com/construccio...reads_java.php

Suerte.
  #3 (permalink)  
Antiguo 12/11/2010, 21:04
Avatar de ivangar  
Fecha de Ingreso: septiembre-2005
Ubicación: méxico df
Mensajes: 99
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Movimiento

lo que necesito es que el movimiento sea de alguna manera "suavizado", es decir que cuando oprima el botón se mueva del punto A al B

:D
  #4 (permalink)  
Antiguo 12/11/2010, 21:37
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Movimiento

Si entendi bien ya puedes realizar el cambio de posicion, pero este es instantaneo. Si es asi, lo puedes hacer con un thread, unicamente incrementas o decrementas los valores de las coordenadas hasta que se igualen, ya nadamas en el thread determinan cuanto se va a tardar entre cada "paso" con sleep()

Etiquetas: movimiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:51.