Irgendwie fällt mir gerade auf, dass wenn ich etwas sage scheine ich viele zu verwirren. Dann kommen nur noch mehr Fragen.
Aber dann will ich dich mal ins Licht führen.
TBitmap: Ja dann hast du keine Koordinaten. Das siehst du richtig. An der Stelle solltest du ein Objekte erstellen welches ein Bitmap benutzt. Das hat dann auch wieder Koordinaten. Da würde ich sogar ein bisschen mehr vorschlagen.
Wenn du eine Ahnung vvon Object Orientierter Programmierung (OOP) hast ist dies genau die Stelle an der eine Pause machen solltest und erst einmal
ein Tutorial durch zulesen. Du darfst auch seiten zurück falls es notwendig ist.
Hier mal das Beispiel wie ich es aufmachen würde.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| type TBaseObject = class public X: Integer; Y: Integer; Bitmap: TBitmap; procedure Draw (Canvas: TCanvas); virtual; end;
TShip = class (TBaseObject); TShoot = class (TBaseObject); |
So in etwa würde ich das machen. Also das ist nur kurz angerissen. Alle Objekte stammen von einer Basis ab und können positioniert und gezeichnet werden. Bei einem Schiff könntest du noch spezial sachen einbauen. genau so wie du unterschiedliche Schiffsklassen ableiten kannst.
Ein Temporäres Bild: Der Sinn darin liegt in der Tatsache, dass du alles zeichnest und kontrolliert alles aufdeckst. Sprich du könntest dir fürs zeichnen Zeit lassen und das komplett fertige Bild wäre dann auf einmal da. Bei vielen TImages flackerte alles immer so. Oder?
Scanlines: Mit Scanlines kannst du direkt auf den Speicher eines Bildes zugreifen. Da bekommst du einen Pointer in der auf die Pixeldaten zeigt. Zeilenweise. Für ein andere Zeile müsstest du ein anderes Scanline aufrufen. Also Scanline[0], Scanline[1] .. scanline[320] für Zeile 0, 1 und 320. Ich weiß. Normal beginnt eine Koordinate bei 1. Musste halt berücksichtigen.
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.