Пример. Непрерывное движение. Рассмотрим случай, когда объект продолжает движение в выбранном направлении даже тогда, когда ни одни клавиша не нажата, а при нажатии клавиши- стрелки меняет направление. Здесь надо использовать переменные dx и dy, которые задают направление движения. Сначала мы определяем, нажата ли клавиша, а затем определяем ее код, записываем его в переменную key, и обрабатываем это нажатие с помощью оператора switch.
Решение.
#include <graphics.h>
#include <conio.h>
#include <dos.h>
void Figure ( int x, int y, int color )
{
... // здесь записываем ту же самую функцию, что и раньше
}
void main()
{
int d = DETECT, m;
int x, y, dx, dy, key;
initgraph ( &d, &m, "c:\\borlandc\\bgi" );
x = 320; y = 240;
dx = 1; dy = 0;
while ( 1 )
{
if ( kbhit() ) {
key = getch();
if ( key == 27 ) break;
switch ( key ) {
case 75: dx = - 1; dy = 0; break;
case 77: dx = 1; dy = 0; break;
case 72: dx = 0; dy = - 1; break;
case 80: dx = 0; dy = 1;
}
}
Figure ( x, y, YELLOW );
delay ( 10 );
Figure ( x, y, BLACK );
x += dx;
y += dy;
}
closegraph();
}