Article View: es.comp.lenguajes.java
Article #29783Re: Preguntilla...eventos
From: Chano G�mez
Date: Wed, 22 Oct 1997 00:00
Date: Wed, 22 Oct 1997 00:00
44 lines
2640 bytes
2640 bytes
> Tengo un cubo rotando en primer plano y 2 botones, > el primero de ellos permitiria el rotar en una direccion > y el segundo en la contraria.Para ello,al recibir un clic en > cualquiera de los botones,cambiariamos una variable interna > que llamaremos "horaria" (=0 roracion horaria,=1 rotacion antihoraria) > en el evento generado cambio "horaria" a lo que corresponda, > y en ese preciso instante el cubo debe empezar a rotar en la > dierrcion indicada,alguien me ofrece ayuda? Y yo, como buen gallego que soy, te respondo con m�s preguntas. �Qu� parte no sabes hacer? (a) Detectar el evento de pulsaci�n de los botones. (b) Saber en cada momento en qu� direcci�n debe girar el cubo. (c) C�mo hacer que el maldito cubo gire... :-) La respuesta a (a) es f�cil. En el cuerpo de la funci�n handleEvent() o action() de tu ventana debes comprobar de qu� bot�n viene el evento. En el mismo sitio va la respuesta a (b): cuando sabes qu� bot�n se ha pulsado, actualizas adecuadamente la variable interna del programa "horaria" con un valor u otro. La respuesta a (c) tiene que ver con el thread del que hablaba al principio. Ese Thread se despertar� a intervalos de, digamos, 50 ms. y decidir� si debe llamar al m�todo repaint(). Supongo que deber� llamarlo una vez hallas pulsado por primera vez los botones. Antes de llamar a repaint() el thread habr� recalculado las coordenadas espaciales del cubo en funci�n de las coordenadas actuales, la velocidad de giro y la direcci�n de giro. Es mejor no hacer esto en el paint, porque no se garantiza que paint() o update() vayan a ser llamados a intervalos regulares, aunque t� llames a repaint() cada 50 ms. Y finalmente, el m�todo paint(), que es llamado indirectamente "por culpa" del repaint() correspondiente, usar� las coordenadas calculadas anteriormente para redibujar el cubo. Espero haber respondido a todas tus dudas... No te pongo c�digo concreto porque no creo que lo necesites... y para no quitarte la emoci�n de escribirlo t� mismo. :-) Un saludo. Chano.
Technical Details
Message-ID:
<344E82C6.20859E23@ran.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<62fm4o$lkp$2@erika.cica.es> <344CC17A.A9061E80@ran.es> <62krve$qvo$1@erika.cica.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,58e585e9696d4cce X-Google-Attributes: gid1116f3,public From: "Chano G�mez" <chano@ran.es> Subject: Re: Preguntilla...eventos Date: 1997/10/22 Message-ID: <344E82C6.20859E23@ran.es> X-Deja-AN: 284561734 References: <62fm4o$lkp$2@erika.cica.es> <344CC17A.A9061E80@ran.es> <62krve$qvo$1@erika.cica.es> Organization: Unisource Espana NEWS SERVER Newsgroups: es.comp.lenguajes.java