Forum: Object-Pascal / Delphi-Language
Delphi
by shmia,
29. Mär 2010
Hi, dein Vorhaben ist auch noch etwas zu schwer für Dich.
Space Invaders sieht einfach aus, aber Spieleprogrammierung ist halt die Königsdiziplin beim Programmieren.
procedure p_schuss(var x,y:integer); // Parameterliste sollte genau so sein, wie oben deklariert
var geschoss:trect;
begin
if schuss1 then
begin
y := y - 4; // Geschoss bewegen
geschoss:=rect(x,y,x+1,y+6);
Forum: Object-Pascal / Delphi-Language
Delphi
by shmia,
29. Mär 2010
Dein Geschoss erstellst du auch aus einem Rechteck.
Ich schlage vor, es ist 1 Pixel breit und 6 Pixel hoch (das kannst du je nach Geschmack verändern)
Du fängst jetzt erstmal an die Kollision mit einem einzigen Image ins Laufen zu bringen.
var
geschoss : TRect;
begin
// Rechteck für Geschoss
// X & Y ist die Referenzposition
geschoss := Rect(X,Y, X+1, Y+6); // evtl auch Y-6
Forum: Object-Pascal / Delphi-Language
Delphi
by shmia,
29. Mär 2010
Eine einfache Kollisionsabfrage im 2-dimensionalen Bereich könnte so aussehen:
Beide Objekte sind Rechtecke. (Dein Schuss ist ein Rechteck mit Breite=1 und Höhe = 6)
Die Rechtecke können sich überschneiden oder nicht.
Ein Spezialfall der Überschneidung ist, wenn ein Rechteck komplett im anderen enthalten ist.
Glücklicherweise bietet Windows schon eine Funktion um zu Prüfen, ob sich zwei...