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

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

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

Добрый всем вечер. Подскажите, пожалуйста, в чем может быть проблема с управлением игрой, написанной в Графе, с клавиатуры? Отрисовка и генерация происходит вроде нормально, но нет реакции на клавиатуру. Вот кусочек с считыванием и кейсом:
Листинг программы
  1. BEGIN
  2. clrscr;
  3. driver:=detect;
  4. InitGraph(driver,mode,'');
  5. cursoroff;
  6. randomize;
  7. setlinestyle(0,0,ThickWidth);
  8. chet:=0;
  9. time:=500;
  10. lvl:=1;
  11. clearDevice;
  12. for i:=1 to M do
  13. for j:=1 to N do
  14. P[i,j]:=0;
  15. l:=3;
  16. stop:=0;
  17. P[2,2]:=-3;
  18. P[2,3]:=-2;
  19. P[2,4]:=-1;
  20. iz:=2;
  21. jz:=4;
  22. dz:=3;
  23. ch:=#0;
  24. ramko;
  25. vyvod;
  26. geneda;
  27. repeat
  28. while keypressed do
  29. ch:=readkey;
  30. case ch of
  31. #72:l:=1;
  32. #80:l:=3;
  33. #77:l:=2;
  34. #75:l:=4;
  35. #27:stop:=2;
  36. #43:dz:=dz+1;
  37. end;
  38. ch:=#0;
  39. dvig;
  40. if pusto=0 then stop:=3;
  41. vyvod;
  42. delay(time);
  43. until stop>0;
  44. clearDevice;
  45. settextstyle(3,0,8);
  46. setcolor(4);
  47. outtextxy(300,300,'Игра завершена**');
  48. setcolor(2);
  49. settextstyle(3,0,5);
  50. str(chet,sh);
  51. outtextxy(300,400,'Ваш счет: ');
  52. outtextxy(550,400,sh);
  53. readln;
А вот тот, куда кейс ссылается:
Листинг программы
  1. if (l=1) and ((iz=1) or (P[iz-1,jz]<0)) then stop:=1;
  2. if (l=2) and ((jz=n) or (P[iz,jz+1]<0)) then stop:=1;
  3. if (l=3) and ((iz=m) or (P[iz+1,jz]<0)) then stop:=1;
  4. if (l=4) and ((jz=1) or (P[iz,jz-1]<0)) then stop:=1;
Процедуры, на которые ссылается программа рабочие, дело похоже не в них. До преобразования в граф (переделывала игру из псевдографики) все работало и управлялось стрелками

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

textual
Листинг программы
  1.  while keypressed do
  2.    begin
  3.     ch:=readkey;
  4.     if ch=#0 then ch:=readkey;
  5.    end;
  6.  case ch of
  7.   #72:l:=1;
  8.   #80:l:=3;
  9.   #77:l:=2;
  10.   #75:l:=4;
  11.   #27:stop:=2;
  12.   #43:dz:=dz+1;
  13.  end;
  14.   ch:=#0;
  15.   dvig;

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


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

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

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы