Código:
Hola!!! #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; }
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!!