On Sun, May 05, 2002 at 06:37:23PM -0000, t0rk4n wrote:
> Hola a todo el mundo,
> resulta que tengo un problema con allegro y no se como
> solucionarlo. Para solucionarlo necesito hacer un debug del programa,
> pero si ejecuto el debug tipoco del MVSC no funciona... ¿Alguien sabe
> como hacer un debug con MVSC de un programa allegro? Creo que para
> hacer un debug habria que usar el GUI de allegro, pero no se como
> usarlo,¿Sabeis si hay algun GUI ya hecho y como se usa?.
Lo que necesitas hacer es ejecutar tu programa con un driver en modo
ventana. Debido a cómo es Windows y DirectX, es prácticamente imposible
depurar nada a pantalla completa (a no ser que estés depurando por red
o en sistemas de monitor dual, claro). En cambio en modo ventana no
suele haber problemas. Y si te siguen dando problemas, prueba forzar
la ejecución de tu programa con el driver GDI, que ese si no se deja
depurar es que algo muy malo le pasa a tu depurador.
> Ahh, y una ultima pregunta... Estoy intentando hacer un pequeño
> motor para poder hacer aventuras graficas con allegro, pero tengo
> problemas con el mouse, ya que se especifica que el mouse se debe de
> ocultar cuando dibujas sobre la memoria de video. Yo he probado a no
> ocultarlo, pero el mouse parpadea constantemente mientras dibuja o ni
> si quiera se ve. Pienso qe esto es un verdadero problema para hacer
> un juego de este tipo..¿Como podria hacer para solucionar este
> problema?.
Este es un problema común, y casi siempre la forma más expeditiva de
solucionarlo es pasar del cursor por hardware (ya que la mayoría de
las veces te interesarán hacer chorradas como cursores animados o más
complejos que un bitmap bicolor), y dibujar "a mano" el cursor del ratón
en la posición adecuada.
Esto significa ocultar el cursor hardware y dibujar el sprite que
quieras en la posición adecuada. El único problema es que dependiendo
de la tarjeta gráfica o del modo en que actualices la pantalla el ratón
puede resultar "poco responsivo" al usuario si tu programa no consigue
dibujar muchos frames por segundo. Por supuesto en una aventura gráfica,
donde no suele haber mucho movimiento en pantalla, suele ser suficiente
con usar dirty rectangles y no se nota la diferencia.
La forma compleja de solucionar esto es intentando usar scare_mouse_area
cuando intentes redibujar la pantalla (o parte). Pero esto sólo merece
la pena si quieres conservar el cursor por hardware.
--
Grzegorz Adam Hankiewicz gradha@... http://gradha.infierno.org/