elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 22:03  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++
| | |-+  problema de movimiento
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: problema de movimiento  (Leído 111 veces)
Giovanny8805

Desconectado Desconectado

Mensajes: 8


Ver Perfil
problema de movimiento
« en: 14 Mayo 2008, 01:29 »



hola  tengo un gran problema con el siguiente codigo:

int i = 0;

while(!key[KEY_ESC])
{
     if(key[KEY_UP])
     {
         
           while (i <= 1)
           {
                 
                //if (mover[6][y]==0)
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x)*MAX, (y-1)*MAX);
                 y = y -1 ;
                 
                 
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }   
     }


 if(key[KEY_DOWN])
    {   
            while (i <= 1)
           {
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x)*MAX, (y+1)*MAX);
                 y = y +1 ;
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }
    }

if(key[KEY_RIGHT])
{
             while (i <= 1)
           {
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x+1)*MAX, (y)*MAX);
                 x = x + 1 ;
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }   
               
}

if(key[KEY_LEFT])
{
                 while (i <= 1)
           {
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x-1)*MAX, (y)*MAX);
                 x = x - 1 ;
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }

}

}

el proble consiste en que tengo una matriz y tengo que hacer que se mueva una imagen por coordenadas que varian dependiendo que se ingrese por el teclado

por ejemplo si el usuario ingresa la tecla arriba la coordenada en y disminuye en uno
o si ingresa la tecla derecha la coordena en x disminuye en uno ...etc...

el problema es que como esta echo en allegro.h cuando yo le ingreso una tecla no se por que se muve tan deliveradamente, y entonces implemente el codigo anterior que limita el movimiento en uno por uno, pero no quiero que aparezca la ventana de systen("pause"), quisiera saber si hay otra forma de realizar este tipo de movimiento con o sin la libreria allegro pero que a la hora de compilar sea compatible el codigo con la libreria.

 ;D ;D ;D ;D ;D ;D  gracias :o :o :o :o :o :o :o :rolleyes: :rolleyes: :rolleyes: :rolleyes:
En línea
Flakito81

Desconectado Desconectado

Mensajes: 350



Ver Perfil
Re: problema de movimiento
« Respuesta #1 en: 14 Mayo 2008, 02:29 »

Para quitar la ventana del system pause es tan facil como kitar system("pause") xDD, lo mismo si kieres un retardo puedes usar la funcion sleep.

Unas simples observaciones:
1- En todos los whiles tienes un break, eso te hace salir del bucle terminada la primera iteracion ¿entonces para que pones un bucle? ¿no te serviria poniendo los movimientos e incrementos que quieras sin mas nada?
2- La variable i para que se utiliza?. Al principio la inicializas a cero y quiero suponer que es para forzar la entrada cuando preciones las teclas del cursor, luego haces los movimientos, vuelves a inicializar i a cero e incrementas tomando el valor uno y de ahi para adelante i siempre valdra uno, es decir, cada vez que toques una tecla del cursor entrará valiendo 1 y saldra con el mismo valor ¿que sentido tiene?

Un saludo!
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC