Witam, mam pewien problem, otóż tworze ponga w pascalu, aktualnie stworzyłem kod odpowiadający za lot piłki po prostej, ale niestety nie działa tak jak należy. Problem polega w tym, że mam paletkę i jeśli już wprawię w ruch piłeczkę i wcisnę raz strzałkę w góre to paletka przesunie się w góre dopiero po zakończeniu całej pętli (aktualnie pracuje nad trybem trening, tj. odbijanie o ściane) - czyli lot do ściany, odbicie się od niej i powrót do paletki.
Jeśli natomiast wcisnę więcej razy strzałkę to moge swobodnie poruszać paletką, jednak mimo wszystko po zakończeniu jednej pełnej pętli czyli lot - ściana - powrót - paletka i tak przemieści paletkę o jedną pozycję w góre lub w dół.
Odpowiedni kod to do tego to:
{rozpoczecie lotu pileczku z paletki po prostej}
if pozKontrolna=0 then
begin
repeat
Inc(pozXp);
gotoxy(starapozXp,shootedpozYp);
write(' ');
gotoxy(pozXp,shootedpozYp);
write(pilka);
starapozXp:=pozXp;
if keypressed then
begin
break;
goto paletka;
goto paletka2;
continue;
end;
{predkosc poruszania sie pileczki}
delay(20);
until pozXp=79;
end;
{////// koniec lotu po prostej od paletki}
if pozXp=79 then pozKontrolna:=1;
{odbicie sie od sciany po prostej}
if pozKontrolna=1 then
begin
repeat
Dec(pozXp);
gotoxy(starapozXp,shootedpozYp);
write(' ');
gotoxy(pozXp,shootedpozYp);
write(pilka);
starapozXp:=pozXp;
if keypressed then
begin
break;
goto paletka;
goto paletka2;
continue;
end;
{predkosc poruszania sie pileczki}
delay(20);
until pozXp=9;
if pozXp=9 then pozKontrolna:=0;
jesli chodzi o labele: paletka zmniejsza odpowiednią zmienna o 1 w gore lub w dol jesli zostala wcisnieta strzalka w gore/dol, a paletka2 zmienia pozycje pileczki na ekranie bazujac na poprzednich obliczeniach.
dodam, ze tworze bez modolu graph, czysto w konsoli.
dzięki z góry za pomoc.