Bitte nicht lachen. Ich will mal so mein erstes Spiel programmieren. Und da dachte ich mir, ich schieße einfach mal so ein paar Objekte ab, die auf der Form rumschwirren. Aber so weit bin ich noch lange nicht. Alles was ich bisher geschafft habe, ist einen Schuß abzufeuern. Und das auch nur schlecht als recht.
Es ist gerade mal ein Schuß und dann ist Schluß. Zu allen Übel folgt der Schuß, wenn er abgefeuert wurde noch der Waffe (ein einfaches Label am unterem Fensterrand, welches man hin und her bewegen kann). Ich könnte aus der Kugel eine Rakete machen die man ins Ziel steuern muß, dann paßt es wieder, aber das will ich nicht.
Hier erstmal etwas Code:
Delphi-Quellcode:
procedure TForm1.Shoot(x, y: DWORD);
var
Shot: TShot;
begin
Shot.x := x;
Shot.y := y;
Form1.Refresh;
Form1.Canvas.Draw(Shot.x ,Shot.y ,bullet);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Shoot(lblGun.Left+(lblGun.Width
div 2), ypos);
Dec(ypos, 5);
end;
Der Schuß wird mit der Leertaste ausgelöst, da wird einfach der Timer gestartet. Das es das nicht ist weiß ich auch. Aber ich komme nicht dahinter wie es gehen könnte. Irgendwie muß ich die Schüsse in einem Array halten und in einer Schleife bewegen und mit dem Timer nur den Takt vorgeben. Aber wie?
Ach so, ich glaube, das Spiel hieß "Asterioids" oder so. So soll dass dann mal aussehen.
Ohne
DirectX oder so bitte.