Entwickler-Ecke
Multimedia / Grafik - Problem: Shape duplizieren
funst3r - So 13.02.11 19:01
Titel: Problem: Shape duplizieren
Hallo,
ich bin gerade dabei Pacman zu programmieren und verzweifele gerade an folgenem Problem:
Ich habe eine Shape welche ein Coin sein soll, der eingesammelt wird.
Damit ich nicht unnütz viel Speicher verschwende, soll auf dem ganzen Projekt verteilt der coin sein. der Coin muss also verdoppelt werden, darf dabei aber nicht den Namen verändern.
D.H: Ich will dass der Coin verdoppelt wird an eine bestimmte position.
Ich habe folgendes geschrieben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| a1,b1,cx1,cy1: integer; y: Real; procedure TForm1.Timer1Timer(Sender: TObject); begin a1:=bild1.left+33; b1:=bild1.top+33; cx1:=coin.left+12; cy1:=coin.top+12; if ((coin.Left>bild1.Left) and (coin.Left<a1) and (coin.Top > bild1.Top) and (coin.Top < b1) and (coin.Visible=true)) or ((cx1>bild1.Left) and (cx1<a1) and (cy1 > bild1.Top) and (cy1 < b1) and (coin.Visible=true)) then
begin coin.Visible:=false; y:=y+17; end; |
Mit freundlichen Grüßen
funst3r
Moderiert von
Martok: Code- durch Delphi-Tags ersetzt
jaenicke - So 13.02.11 19:20
Hallo und :welcome:
Erstens kann es nicht mehrere Komponenten mit dem gleichen Namen geben. Das heißt du musst schon diese Anzahl an Komponenten mit verschiedenen Namen haben.
Zweitens würde ich die Positionsprüfungen usw. in eine eigene Klasse auslagern, die sich um alles kümmert, was zu einem Coin gehört.
Drittens würde ich nicht so viele TShapes benutzen. Auch wenn es Anfangs schwieriger aussehen mag, ist es trotzdem einfacher eine TPaintbox zu nehmen und da alles selbst draufzuzeichnen. Auch das kann dann die Coin-Klasse machen.
funst3r - So 13.02.11 19:42
hallo und danke für die rasche antwort.
meinst du mit dem letzten punkt, dass ich die einzelnen coins zeichnen lassen soll mit
image1.canvas.rectangle(x,y) oder anders?
aber wie kann ich dann die abfrage machen, dass die einzelnen rectangles wieder gelöscht werden?
verstehst du was ich meine?
bummi - So 13.02.11 21:19
Was hältst Du davon ein Array anzulegen mit den benötigten Informationen. z.B. ein Array of Array of Char. Diese initialisierst Du beispielsweise mit
Delphi-Quelltext
1:
| SetLength(Arr,100,100); |
Füllst es mit Coins 'C', Senkrechten Wänden 'S', waagrechten Wänden 'W' deinem Pacman 'P' etc. jeder gefressene Coin wird zu einem ' '. Und jetzt das ganze in einer Paintbox malen lassen, nächsten Zustand berechnen und wieder malen lassen ....
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!