Примерно так:
Var i,key,g:integer;
a,b: array [0..9] of integer;
ip: boolean;
p:array [0..9] of image;
PuleShot: array [0..9] of boolean;
Begin
g:=0;
For i:=0 to 9 do begin
a[i]:=100;
b[i]:=100;
p[i]:=LoadImage('/icon.png');
PuleShot[i]:=False;
end;
Repeat
FillRect(0,0,240,320);
key:=GetKeyClicked;
If KeyToAction(key)=GA_FIRE then begin
PuleShot[g]:=True;
g:=g+1;
end;
If g>5 then g:=0;
For i:=0 to 9 do begin
If PuleShot[i]=True then begin
DrawImage(p[i], a[i], b[i]);
a[i]:=a[i]+1;
If a[i]>240 then begin
PuleShot[i]:=False;
a[i]:=100;
end;
end;
end;
Repaint;
Until b[0]=10;
End.
Добавил свойство пули PuleShot[i]- выстрелить её или нет (рисовать/не рисовать)
И зачем создавать лишний массив 100?
За 9 у меня на эмуляторе и то выстрел сразу не реагирует.
И чтобы игруля была мультиэкранка - нужно не за 240 пикс. пулю проверять, а в переменную
Var ScreenW: integer;
Begin
ScreenW:=GetWidth;
Repeat
If a[i]>ScreenW+5 then a[i]:=ScreenW/2;