Тема: Графика C++
Показать сообщение отдельно
Старый 17.05.2011, 12:00   #1 (permalink)
schartem
Новичок
 
Регистрация: 17.05.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Графика C++

Написал простую программу по графике, в которой кружок перемещается по диагонали при нажатии клавиши "вправо", а при нажатии клавиши "esc" выходит из программы. Пришел в универ и оказалось, что не полностью понял задание.
Вот код моей программы
Цитата:
#include <stdio.h>
#include <graph.h>
#include <malloc.h>
#include <conio.h>

short c[4] = {10, 405, 75, 470};

int main()
{
short pm, sx=0, sy=0;
int cc, ab, count=0;
long l;
char *o, *z;
struct videoconfig gs;
_setvideomode (_VRES16COLOR);
_getvideoconfig (&gs);
l=_imagesize (10, 405, 75, 470);
o=calloc ((size_t)l, sizeof (char));
_getimage (10, 405, 75, 470, o);
_setcolor (4);
_ellipse (_GFILLINTERIOR, 10, 405, 75, 470);
_setcolor (1);
_ellipse (_GFILLINTERIOR, 15, 415, 50, 460);
_setcolor (3);
_ellipse (_GFILLINTERIOR, 17, 420, 37, 440);
z=calloc ((size_t)l, sizeof(char));
_getimage (10, 405, 75, 470, z);
while (1) {
if (kbhit()) {
ab = getch();
if (ab == 77)
break;
else if (ab == 27)
goto exit;

}
}

while (1)
{
if (kbhit())
{
cc = getch();
if (cc==27) break;
else continue;
}
else
{
if (count==0)
{
if ((c[2]<gs.numxpixels-5)||(c[1]>5))
{
_putimage (c[0], c[1], o, _GPSET);
c[0]+=6; c[1]-=4; c[2]+=6; c[3]-=4;
_getimage (c[0], c[1], c[2], c[3], o);
_putimage (c[0], c[1], z, _GPSET);
}
else count=1;
}
if (count==1)
{
if ((c[0]>5)||(c[3]<gs.numypixels-5))
{
_putimage (c[0], c[1], o, _GPSET);
c[0]-=6; c[1]+=4; c[2]-=6; c[3]+=4;
_getimage (c[0], c[1], c[2], c[3], o);
_putimage (c[0], c[1], z, _GPSET);
}
else count=0;
}

}

}

exit:
free (o);
free (z);

_setvideomode (_DEFAULTMODE);

return 0;}
Так вот , надо переделать программу, чтобы в ней было некое меню с клавишами "вправо" "вверх" "влево" "вправо" , которые бы выбирались с помощью клавиш-стрелок на клавиатуре, и при нажатии которых бы выполнялось действие, соответствующее названию клавиши.
Я вообще не понимаю как это сделать. помогите кто может
schartem вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070