В игре не работает управление с клавиатуры - 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;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д