В игре не работает управление с клавиатуры - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Добрый всем вечер. Подскажите, пожалуйста, в чем может быть проблема с управлением игрой, написанной в Графе, с клавиатуры? Отрисовка и генерация происходит вроде нормально, но нет реакции на клавиатуру. Вот кусочек с считыванием и кейсом:
BEGIN
clrscr;
driver:=detect;
InitGraph(driver,mode,'');
cursoroff;
randomize;
setlinestyle(0,0,ThickWidth);
 
chet:=0;
time:=500;
lvl:=1;
 
 clearDevice;
 
 for i:=1 to M do
  for j:=1 to N do
   P[i,j]:=0;
 
 l:=3;
 stop:=0;
 P[2,2]:=-3;
 P[2,3]:=-2;
 P[2,4]:=-1;
 iz:=2;
 jz:=4;
 dz:=3;
 ch:=#0;
 
 ramko;
 vyvod;
 geneda;
 repeat
 
  while keypressed do
   ch:=readkey;
 case ch of
  #72:l:=1;
  #80:l:=3;
  #77:l:=2;
  #75:l:=4;
  #27:stop:=2;
  #43:dz:=dz+1;
 end;
  ch:=#0;
  dvig;
   if pusto=0 then stop:=3;
  vyvod;
 
  delay(time);
 
 until stop>0;
 
  clearDevice;
  settextstyle(3,0,8);
  setcolor(4);
   outtextxy(300,300,'Игра завершена**');
  setcolor(2);
  settextstyle(3,0,5);
   str(chet,sh);
   outtextxy(300,400,'Ваш счет: ');
   outtextxy(550,400,sh);
 
 readln;
А вот тот, куда кейс ссылается:
 if (l=1) and ((iz=1) or (P[iz-1,jz]<0)) then stop:=1;
   if (l=2) and ((jz=n) or (P[iz,jz+1]<0)) then stop:=1;
   if (l=3) and ((iz=m) or (P[iz+1,jz]<0)) then stop:=1;
   if (l=4) and ((jz=1) or (P[iz,jz-1]<0)) then stop:=1;
Процедуры, на которые ссылается программа рабочие, дело похоже не в них. До преобразования в граф (переделывала игру из псевдографики) все работало и управлялось стрелками

Решение задачи: «В игре не работает управление с клавиатуры»

textual
Листинг программы
 while keypressed do
   begin
    ch:=readkey;
    if ch=#0 then ch:=readkey;
   end;
 case ch of
  #72:l:=1;
  #80:l:=3;
  #77:l:=2;
  #75:l:=4;
  #27:stop:=2;
  #43:dz:=dz+1;
 end;
  ch:=#0;
  dvig;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы