Hallo!
Ich bin noch rellativ neu bei Lazarus und programmiere momentan ein Spiel, indem man ein Fadenkreuz (Image1) mit Pfeiltasten auf Ziele (Image2) bewegen, und durch drücken der Leertaste "abschiessen" muss.
Leider bekommt man nun nicht nur bei schuss auf ein Ziel, sondern bei jeder Tasteneingabe, egal welche, einen Punkt.
Kann mir da jemand helfen?
Danke schonmal im Vorraus.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
Case key of
VK_Space: Space:=true;
VK_left: image1.Left:=image1.left-10;
VK_Right: image1.left:=image1.left+10;
VK_Up: image1.Top:=image1.Top-10;
VK_Down: image1.Top:=image1.Top+10;
end;
if Level2
then
begin
if (image1.top < image2.Top + image2.Height) and
(image1.top + image1.Height > image2.top) and
(image1.left < image2.Left + image2.Width) and
(image1.left + image1.Width > image2.left) and
Space
then
result := true;
if result=true then
begin
image2.hide;
punkte:=punkte+1;
panel1.Caption:=inttostr(punkte);
result:=false;
space:=false;
image2.left:=image2.left+1000;
tstart:=GetTickCount;
tstart:=tstart+10000 ;
repeat
tende:=GetTickCount;
Application.ProcessMessages;
until tende>tstart;
image2.left:=image2.left-1000;
end;
Punktevergabe bei Zielsystem funktioniert nicht
Re: Punktevergabe bei Zielsystem funktioniert nicht
Hi,
mal abgesehen davon, dass du:
- den Code in "< />" einschließen solltest
- "result" der Rückgabewert einer FUNCTION ist
- ich nicht weiß, wo "Level2" definiert ist und für was es gut ist
du unbedingt mal über die Regel: Punkt vor Strich nachdenken musst!
mal abgesehen davon, dass du:
- den Code in "< />" einschließen solltest
- "result" der Rückgabewert einer FUNCTION ist
- ich nicht weiß, wo "Level2" definiert ist und für was es gut ist
du unbedingt mal über die Regel: Punkt vor Strich nachdenken musst!
Gruß, Michael