20/08/2012, 10:37
|
| | 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!! |