Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2012, 10:37
harryarcoiris
 
Fecha de Ingreso: agosto-2012
Mensajes: 94
Antigüedad: 12 años, 3 meses
Puntos: 7
Mover un circulo con Winbgim (Problema)

Código:
#include <winbgim.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#include <string.h>



int main()
{
    int x, y, radius;
    char flecha;
    initwindow(1024,768); 
    settextstyle(0,0,2);
    setcolor(COLOR(200,240,45));
    outtextxy(200,300,"Mover un circulo");
    outtextxy(200,400,"Pulse una tecla para continuar...");
    while(!kbhit());
    setcolor(BLACK);
    outtextxy(200,300,"Mover un circulo");
    outtextxy(200,400,"Pulse una tecla para continuar...");
    
    outtextxy(400,400,"Para mover el circulo, use las flechas. Para finalizar, presione la tecla Fin");
    outtextxy(400,500,"Presione una tecla para continuar");
    while(!kbhit());
    
    
    x = 500;
    y = 500;
    radius = 200;
    setcolor(WHITE);
    circle(x,y,radius);
    
    do{
                       
                       fflush(stdin);
                       flecha = getch();
                      if(flecha == 0); 
                      
                      {         
                                getch();
                                if(flecha = KEY_UP)
                                { 
                                      fflush(stdin);
                                      outtextxy(100,100,"Muevete para arriba");
                                      setcolor(BLACK);
                                      circle(x,y,radius);
                                      y = y - 10;
                                      delay(1);
                                      setcolor(WHITE);
                                      circle(x,y,radius);
                                      fflush(stdin);
                                }
                                fflush(stdin);
                                getch();      
                                      if(flecha = KEY_DOWN)
                                      {
                                      outtextxy(200,200,"Muevete hacia abajo");
                                      setcolor(BLACK);
                                      circle(x,y,radius);
                                      fflush(stdin);
                                      y = y + 10;
                                      setcolor(WHITE);
                                      circle(x,y,radius);
                                      }
                                      fflush(stdin);
                                      getch();
                                      if(flecha = KEY_LEFT)
                                      {
                                      setcolor(BLACK);
                                      circle(x,y,radius);
                                      x = x - 10;
                                      setcolor(WHITE);
                                      circle(x,y,radius);
                                      }
                                      fflush(stdin);
                                      getch(); 
                                       if(flecha = KEY_RIGHT)
                                        {
                                      setcolor(BLACK);
                                      circle(x,y,radius);
                                      x = x + 10;
                                      setcolor(WHITE);
                                      circle(x,y,radius);
                                      }
                                      fflush(stdin);
                                      getch(); 
                      
                      }
                      
}while(getch()!=KEY_END);
while(!kbhit());
closegraph();
return 0;
}
Hola!!!

Este programa, tecnicamente permite mover un circulo con las flechas del teclado, sin embargo, no mueve el circulo, cuando apreto una flecha titila, y si saco un if, hace los otros tres, al parecer, el getch me reconoce las cuatro flechas a la vez, y cualquier tecla presionada lo considera las cuatro teclas

¿Porque?

Gracias de Antemano.

Saludos!!