Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Kartenspiel --> Karten bewegen?? (https://www.delphipraxis.net/9915-kartenspiel-karten-bewegen.html)

Scorpius 7. Okt 2003 19:13


Kartenspiel --> Karten bewegen??
 
Hallo,

zum coden eines Kartenspiels benutze ich die Komponente TCard v1.
Funktioniert auch einwandfrei, jedoch würd ich die Karten auch gern mit der Maus bewegen können um sie zum Beispiel von einem Stapel auf den nächsten zu transportieren (wie im Windows-Solitaer).
Hat jemand ne Idee , wie ich das bewerkstelligen kann??

Für jegliche Idee im vorraus Danke!!

Mirilin 9. Okt 2003 00:44

Re: Kartenspiel --> Karten bewegen??
 
:hi:

Schau dir mal diesen LINK an.

ims 9. Okt 2003 07:55

Re: Kartenspiel --> Karten bewegen??
 
vielen dank mirilin, sowas hab ich auch schon gesucht!!

gruss, ims

Scorpius 9. Okt 2003 16:11

Re: Kartenspiel --> Karten bewegen??
 
Vielen dank Mirilin, der Link ist schon mal sehr hilfreich.
Was mich jedoch stört ist das flackern der Grafik beim verschieben.
Wie könnte man das noch abstellen.

Gruß Scorpi

Gandalfus 9. Okt 2003 18:48

Re: Kartenspiel --> Karten bewegen??
 
einfach mit:
Delphi-Quellcode:
Form1.DoubleBuffered := true
etwas kompilzierter aber eleganter:
Alle Zeichnen operationen erst auf ein TBitamp(Hintergrundbild)
Und wenn alles gezeichnet wurde das Bild auf das Formular kopieren z.B. mit Canvas.draw oder besser mit BitBlt();

Da ich TCard v1. nicht kenne kan ich leider kein Beispiel posten.

mfg

Scorpius 9. Okt 2003 19:38

Re: Kartenspiel --> Karten bewegen??
 
Hallo Gandalfus

DoubleBuffered hört sich nicht schlecht an, jedo "Undefinierter Bezeichner: DoubleBuffered".
Ich arbeite mit Delphi 3 Prof., hab ich da etwas vergessen, oder gibt es das dort noch nicht??

Gruß Scorpi

Gandalfus 10. Okt 2003 13:35

Re: Kartenspiel --> Karten bewegen??
 
Zitat:

Zitat von Scorpius
Hallo Gandalfus
DoubleBuffered hört sich nicht schlecht an, jedo "Undefinierter Bezeichner: DoubleBuffered".
Ich arbeite mit Delphi 3 Prof., hab ich da etwas vergessen, oder gibt es das dort noch nicht??

Das giebt es leider bei delphi3 noch nicht.
Da musst du wohl die 2 Variante nehmen.

Am besten du verzichtest dann auch gleich auf diese TCard v1.

Hier mal ein ungetestes Beispiel:
Delphi-Quellcode:
  type
  karte = record;
    sichtbar: boolean;
    kind: integer;
    top,left: intger;
  end;
 

var
  karten: array [1..32] of karte;
  katenbilder: array [1..32] of TBitmap;
  backbild: TBitmap:
oncreate:
Delphi-Quellcode:
 
  backbild := Tbitmap.create;
  backbild.width := Form1.width;
  backbild.height := Form1.height;

  for i:=1 to high(katenbilder) do
  begin
    katenbilder[i] := Tbitmap.create;
  end;
  katenbilder[1].loadfromfille('Königbild.bmp');
  katenbilder[2].loadfromfille('Damebild.bmp');
  .......
In einen timer mit kleinem Intervall:

Delphi-Quellcode:
for i:=1 to high(katen) do
  begin
    backbild.Canvas.draw(katen[i].left,katen[i].top,katenbilder[katen[i].kind]);
  end;
  Form1.canvas.draw(0,0,backbild);


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz