miércoles, 9 de abril de 2008

10) Entradas 2da Parte (Teclado - Clase KeyManager) ...

Ya hemos definido a nuestra clase, ahora llevaremos a cabo su implementación, en este caso, es muy simple seguir el código, así que ahí va directamente:
/**
* ...
* @author Wal
* @version 0.9
* @since 2008-04-02
* @link http://www.tenemos.info
*/

package MisClases {
// importamos el soporte de eventos y de los componentes
// principales de Flex
import flash.events.*;
import mx.core.*;
// definimos la clase KeyManager
public class KeyManager extends UIComponent {
// definimos y publicamos las propiedades que indican
// los estados de cada tecla
public var up: Boolean = false;
public var down: Boolean = false;
public var left: Boolean = false;
public var right: Boolean = false;
public var space: Boolean = false;
public var zKey: Boolean = false;
public var xKey: Boolean = false;
public var cKey: Boolean = false;
// en el constructor, nos "colgamos" de los eventos
// KEY_UP y KEY_DOWN del
// contenedor recibido como parámetro (aParent)
// asociándolos a las funciones
// de la clase keyDown y keyUp respectivamente
public function KeyManager(aParent:UIComponent) {
aParent.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
aParent.addEventListener(KeyboardEvent.KEY_UP, keyUp);
}
// definimos los casos del evento KEY_DOWN del contenedor
private function keyDown(event:KeyboardEvent):void {
switch (event.keyCode) {
case 37 :
left = true;
break;
case 38 :
up = true;
break;
case 39 :
right = true;
break;
case 40 :
down = true;
break;
case 32 :
space = true;
break;
case 90 :
zKey = true;
break;
case 88 :
xKey = true;
break;
case 67 :
cKey = true;
}
}
// definimos los casos del evento KEY_UP del contenedor
private function keyUp(event:KeyboardEvent):void {
switch (event.keyCode) {
case 37 :
left = false;
break;
case 38 :
up = false;
break;
case 39 :
right = false;
break;
case 40 :
down = false;
break;
case 32 :
space = false;
break;
case 90 :
zKey = false;
break;
case 88 :
xKey = false;
break;
case 67 :
cKey = false;
}
}
}
}
/** Fin de la clase KeyManager **/

Luego veremos cómo utilizar esta clase en un programa de prueba. Sin embargo, ya pueden ir observando las posibilidades y limitaciones que tiene esta clase. Supongamos que queremos utilizarla en un juego donde tenemos un actor que se va desplazando por la pantalla. En este caso, no tendremos ningún inconveniente en utilizarla, hasta podremos tomar distintas decisiones si hay más de una tecla pulsada (por ejemplo, girar en diagonal). Sin embargo, seguramente aplicar esta clase a un juego tipo Simon (seguir las 4 luces de colores en una secuencia), no sería lo más apropiado. En éste último caso, conviene hacer uso de los eventos (podría ser KEY_UP o KEY_DOWN indistintamente en forma directa.

3 comentarios:

Anónimo dijo...

muy bueno! espero la proxima entrega!

Ruber Eaglenest dijo...

Ey! No te rindas. Este tutorial me parece imprescindible. Espero que todo te vaya bien y que puedas terminar tanto tu juego como este magnífico tutorial. Tan sólo un inciso en cuanto a la filosofía del mismo. Yo quiero aprender Flash, pero a la vez que me sirva de forma profesional, quizás por eso voy a dejar de lado las herramientas open source, y tratar de crear juegos a la vieja usanza en Flash, como si fuesen películas. Quizás luego pasarme a Flex pero de nuevo, usando herramientas que se usen en trabajos profesionales.

¿Algo que comentar al respecto? ¿Alguna recomendación sobre qué servirá más de cara a ganar dinero?
¿Encuentras que realizar juegos flash en plan montaje de películas es más tedioso que de forma OO como en Flex?

jose altamirano dijo...

hola wal!!..
(espero asi te llames)

son muy instructivas las entregas que estas dando.

hoy descubri tu blog y ya he leido todos tus post.

espero nos des una nueva entrega de la clase KeyManager

tengo 2 semanas en flex y actionscript3. y claro, siempre con ganas de aprender algo mas.

saludos desde perú!!