Einzelnen Beitrag anzeigen

Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#8

Re: Terrain wie in Worms (2D / DelphiX)

  Alt 13. Mär 2005, 18:57
Hallo,

Zitat von MasterEvil:
kA ob das nicht eventuell zu langsam ist,
aber falls du eine feste größe für die spielfläche hast könntest du auch mit einem array arbeiten.
das array könnte ein record sein, der z.B. Farbe und Fest Ja/nein enthält.
der array ist halt so groß wie deine spielfläche (680*420, oder wie auch immer).
dann hast du eine paint methode der du sagst welchen bereich du neuzeichnen willst, so brauchste nich immer alles neuzeichnen.
so kannste dann halt bei explosionen mit dem array arbeiten, mehrere arrays für mehrere ebenen benutzen und kannst halt viel eingrenzen in dem du sagst was er zeichnen soll.

aber echt kein plan ob die art nicht wiederrum zu lahm ist.
Gerade das ist ja, was man (wie ich meine!, vielleicht irre ich ja) nicht tun sollte. Wenn man in einem Array gespeichert hat, wo Terrain ist und das zeichnen will, hat man eines der beiden folgenden Probleme: Entweder man trennt das Terrain, das gespeichert ist von dem, was gezeichnet wird. Dann kann man bei Explosionen einfache Kreise zeichnen und hat ein Loch. Aber was passiert mit dem Array? Da muss man dann in den Array den gleichen Kreis zeichnen. Das ist etwas knifflig. Oder, wenn man den gespeicherten Array als Grundlage nimmt, dann hat man das Problem das dann auch zu zeichnen. Es ist unglaublich langsam, wenn man etwas Pixelweise zeichnet und soweit ich weiß gibt es auch keinen gescheit schnellen Befehlt dafür.
Deswegen mein Vorschlag: Lass den Array weg und nimm statt dessen das Bild (das ja in gewisser Weise auch ein Array ist). Da kann man ganz einfach Löcher rein machen, indem man Kreise reinzeichnet. Außerdem kann man ziemlich einfach den Inhalt eines ganzen Bildes komplett in ein anderes Bild hineinkopieren und das ziemlich schnell.
Ich hoffe ich habe das jetzt nicht zu verwirrt wiedergegeben...

Grüße
Seniman
  Mit Zitat antworten Zitat