[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
[ebook]Programacion de videojuegos con SDL
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
P R O G R A M A C I Ó N D E V I D E O J U E G O S C O N S D L¿algo que suce<strong>de</strong>? ¿que respuesta es esa?Vale, vale... espera que te explique. En <strong>SDL</strong>, un evento está asociado a una acción <strong>de</strong>lusuario sobre la aplicación que se está ejecutando. Como sabes, para interactuar <strong>con</strong> unor<strong>de</strong>nador usamos periféricos <strong>de</strong> entrada, como un teclado, un ratón, etc...Tipos <strong>de</strong> eventosTecladoEl teclado es el principal dispositivo <strong>de</strong> entrada, aunque algunos se empeñen en quesea el ratón. Ahora, mientras tecleo estas líneas, lo estoy utilizando, y no puedo imaginarun dispositivo más cómodo para esta tarea.Cada vez que pulses una tecla, <strong>SDL</strong> crea un evento que indica, no sólo que se pulsóuna tecla, también cuál fue. Más <strong>con</strong>cretamente <strong>SDL</strong> lanza un evento cada vez que sepulsa una tecla y también cuando <strong>de</strong> suelta. También nos informa sobre si hay algunatecla especial pulsada como Ctrl, Alt o Shift.RatónEl otro gran dispositivo <strong>de</strong> entrada es el ratón, quizás más a<strong>de</strong>cuado para ciertos tipos<strong>de</strong> juegos que el teclado. Hay dos tipos <strong>de</strong> eventos que <strong>de</strong>vuelve el ratón, uno referenteal movimiento y el otro referente al estado <strong>de</strong> los botones. En lo referente al movimiento,<strong>SDL</strong> nos informa sobre la posición <strong>de</strong>l puntero, así como <strong>de</strong> la distancia que ha recorrido<strong>de</strong>s<strong>de</strong> el último evento <strong>de</strong> ratón. En lo referente a los botones, el evento <strong>con</strong>tieneinformación sobre si se ha pulsado o se ha soltado un botón <strong>de</strong>l ratón, y por supuesto,cual <strong>de</strong> ellos fué.JoystickSin duda, el joystick es el rey <strong>de</strong> los periféricos para jugar. Sin embargo en el PC noexiste un estándar, y hay multitud <strong>de</strong> ellos. Debido a esto, <strong>SDL</strong> tiene un subsistemacompleto <strong>de</strong>dicado al joystick. Desgraciadamente, y quizás por no ser un periféricoestándar, no está muy extendido. Los eventos que se generarán van a <strong>de</strong>pen<strong>de</strong>r <strong>de</strong>ljoystick. En principio los principales son el movimiento <strong>de</strong>l joystick y la pulsación <strong>de</strong> losbotones. Algunos Joystick pue<strong>de</strong>n generar otro tipo <strong>de</strong> eventos, pero vamos a centrarnosen estos dos, que son lo más comunes.Otros eventosTambién po<strong>de</strong>mos <strong>con</strong>ocer eventos relacionados <strong>con</strong> el sistema operativo, y que nosvan a ser muy útiles. Sin duda el más importante es el que nos indica que se va a cerrarel juego (o que se va a cerrar la ventana <strong>de</strong>l juego). Otros importantes son los referidos alcambio <strong>de</strong> tamaño <strong>de</strong> la ventana (si es que nuestro juego se está ejecutando en unaventana) o el que nos indica que <strong>de</strong>bemos redibujarla (por cualquier motivo relacionado<strong>con</strong> el SO, como por ejemplo, que se superpuso una ventana <strong>de</strong> otra aplicación, etc...).Lectura <strong>de</strong> eventosPo<strong>de</strong>mos interrogar al sistema por los eventos <strong>de</strong> tres formas posibles. Po<strong>de</strong>mos esperar aque ocurra cierto evento para realizar una acción <strong>con</strong>creta, por ejemplo, un programa pue<strong>de</strong>quedar a la espera <strong>de</strong> que pulsemos un botón en un cuadro <strong>de</strong> diálogo.39