Пример. Непрерывное движение.  Рассмотрим случай,   когда   объект   продолжает   движение   в выбранном направлении даже тогда, когда ни одни клавиша не нажата, а при нажатии клавиши- стрелки  меняет  направление.  Здесь  надо  использовать  переменные  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();

}


2009-12-19 • Просмотров [ 1013 ]