Thema: Delphi Pac-Man Hilfe

Einzelnen Beitrag anzeigen

DelphiforNUBS
(Gast)

n/a Beiträge
 
#4

AW: Pac-Man Hilfe

  Alt 10. Apr 2015, 14:41
also du hast die beiden Bilder: PACMAN & den Punkt...

du musst prüfen ob die beiden Rechtecke sich überschneiden. Das nennt man "bounding-Box-Collision".

also du hast die beiden image-Felder und ihre Koordianten:

wenn jetzt einer der Pacman Eckpunkte innerhalb des andren Images liegt muss der Punkt gefressen werden.
bzw. wenn sie sich überschneiden.

das kann man mit einer for-Schleife realisieren...

1) alle Eckpunkte von pacman durchgehen
--- mit jedem punkt:
prüfe ob pacman.X1 > punkt.X1 und pacman.X1 < punkt.X3

(das musst du dann jedesmal prüfen wenn pacman sich bewegt)

Ist schlampig geschrieben aber Google einfach nach "bounding box collision".

oder schau mal hier https://www.youtube.com/watch?v=8b_reDI7iPM

OOOOOOOOODER:


Wenn das Spielfeld in einem 2D-Array als zahlen angelegt ist (z.b. wände: 1, punkte: 2) dann brauchst du nur prüfen ob Pacman(X,Y) gerade auf einem Feld ist das einen punkt enthält. dann einfach den punkt bei (X,Y) ersetzen.
(das sollte auch eigentlich die zugrundelegende spiellogik darstellen, bounding boxes entfallen dann komplett man hat nur noch die X und Y Koordinaten von Pacman)

Pacman befindet sich zb bei [5,2].
wenn pacman im nächsten schritt nach rechts geht (X+1) dann muss die 2 dort in eine 0 geändert werden.
dann das Array mit for schleifen durchgehen und das Spielfeld neu zeichnen.
dann pacman zeichnen.

die X und Y Koordinaten werden in Bildschirmkoordinaten umgerechnet damit man weiß wo die Bilder zu zeichnen sind
(zb Array[1,1] muss in Pixeln 100,100 sein ... oder Feld[4,2] sind die pixelkoordinaten 400, 200 wenn ein Feld bei euch 100x100 Pixel sein soll)

als Beispiel das Array[X][Y]:

111111111111
100002222221
101000000121
101000000121
101000000121
100000000021
111111111111


viel erfolg

Geändert von DelphiforNUBS (10. Apr 2015 um 15:07 Uhr)
  Mit Zitat antworten Zitat