🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #29783

Re: Preguntilla...eventos

#29783
From: Chano G�mez
Date: Wed, 22 Oct 1997 00:00
44 lines
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-mail
References: <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