![]() |
Pokerkarten während des Spiels erstellen
Also ich hab hier im Forum nichts zu meiner Frage gefunden.
Ich programmier momentan ein (noch relativ simples) Pokerspiel. Anfangs hab ich einfach alle 52Pokerkarten in Photoshop erstellt, in eine ImageList geladen und wenn sie benötigt wurden daraus geladen. Jetzt möchte ich aber die Karten (die gebraucht werden, nichtmehr alle 52) während des Spiels erstellen, und hab dabei bisher folgendes hinbekommen:
Delphi-Quellcode:
Jetzt zu meinem Problem: Erstens, hab ich keine Idee wie ich den Text den ich auf den Canvas schreibe zentrieren soll...geht das nur nach Gfeühl? Also abschätzen mit welchen Einstellungen es zentriert wäre?
//Ausschnitt aus einer Schleife in der dem Spieler die Karten gegeben werden und halt die Karten
//gezeichnet werden sollen //In der ImageList sind Bilder von Karo, Herz, Pik und Kreuz mit den Indexen 1-4 Spieler[j].Zwei[i].Grafik := TBitmap.Create; Spieler[j].Zwei[i].Grafik.Width := 50;; Spieler[j].Zwei[i].Grafik.Height := 80; x := clWhite; Spieler[j].Zwei[i].Grafik.Canvas.FillRect(rect(0, 0, 50, 80)); if Spieler[j].Zwei[i].Farbe < 3 then x := clRed else x := clBlack; ImageList1.Draw(Spieler[j].Zwei[i].Grafik.Canvas, 1, 39, Spieler[j].Zwei[i].Farbe); Spieler[j].Zwei[i].Grafik.Canvas.Font.Color := x; Spieler[j].Zwei[i].Grafik.Canvas.Font.Size := 20; Spieler[j].Zwei[i].Grafik.Canvas.Font.Style := [fsBold]; Spieler[j].Zwei[i].Grafik.Canvas.Font.Name := 'Arial Black'; Spieler[j].Zwei[i].Grafik.Canvas.TextOut(15, 2, Kartenaufschrift[Spieler[j].Zwei[i].Bild]); //Hoffe ihr versteht soweit einigermaßen was ich zu tun versuche Und mein zweites Problem: Die Schrift wird mir zu wenig "weich" (dh Pixelig) gezeichnet (ich hoffe ihr wisst was ich damit meine), kann ich das irgendwie ändern? MfG und danke im Vorraus! =) Edit: Achso eins noch...wenn ich jetzt die Größe des Bildes ändere, dh Width und Height kleiner stelle, dann zeigt er nur noch einen Ausschnitt des Bildes, ich hätt aber gerne, dass er das Bild Stretched...wie krieg ich das hin? |
Re: Pokerkarten während des Spiels erstellen
Zitat:
![]() Zitat:
Zitat:
![]() |
Re: Pokerkarten während des Spiels erstellen
Danke, das seh ich mir mal an!
|
Re: Pokerkarten während des Spiels erstellen
So, dass mit dem TextExtent hat super geklappt, danke dafür!
Zum Anti-Aliasing hab ich nur folgendes gefunden: ![]() Ich entnehme daraus, dass ich das selbst programmieren müsste und es dafür keine vorgefertigte Möglichkeit gibt, lieg ich damit richtig? So und zum TImage.Strech...dann müsste ich das Bitmap in n Image packen oder? Danke shconmal für die bisherige Hilfe |
Re: Pokerkarten während des Spiels erstellen
Zitat:
Zitat:
Ach, jetzt fällt mir dazu noch ne Möglichkeit ein: [oh]StretchBlt[oh] PS: Hab mich oben verschrieben, es heißt nicht TImage.Strech, sondern TImage.Stretch (ich editier's oben) |
Re: Pokerkarten während des Spiels erstellen
Ok, super danke! Jetzt hab ihc aber shcon wieder ne Frage, auch wennse vielleicht nich ganz zum Thread passt aber will dafür jetzt nich extra n neuen aufmachen:
Ich möchte gerne, dass wenn der Flop angezeigt wird, nach jeder der drei Karten ein bisschen gewartet wird, bis die nächste Karte angezeigt wird! Habs mit Sleep() probiert, aber dann läuft der Rest des Programms (mein Timer im Hitnergrund) nicht weiter! Gibts auch ne andere Methode dass er auf die nächste Karte wartet? (abgesehn vom Timer) |
Re: Pokerkarten während des Spiels erstellen
Also eigentlich sollte das mit Sleep ja gehn.
Aber kannst ja mal ein "Manuelles" sleep machen.
Delphi-Quellcode:
Aber vorsicht habs Blind gecoded.
// Wartet Value ms lang.
Procedure Warte(Value:Integer); var d1 : dword; begin d1 := Gettickcount; while Gettickcount - d1 < Value do Application.processmessages; end; |
Re: Pokerkarten während des Spiels erstellen
Wow das funktioniert ;-)
Wär nie auf die Idee gekommen das selbst zu schreiben, wobeis ja eig recht simpel is :) Dankeschöön...das wars erstma soweit, den Rest versuch ich erstmal selber zu lösen, sonst meld ich mich nochmal :) |
Re: Pokerkarten während des Spiels erstellen
Ok, jetzt nochmal was...
Also das mit dem Spiel klappt soweit alles super, aber will das halt auf ner grafischen Oberfläche haben! Jetzt lass ich den Flop halt einmal als große Karten darstellen und will ihn dann nochmal auf dem Pokertisch mit kleinen Karten haben! Das klappt zwar mit StretchBlt, aber die Ergebnisse sind sehr Pixelig! Jetzt wollte ich fragen...macht es Sinn DelphiX dafür zu benutzen (müsste mich darein arbeiten)? Kann ich damit zB auch den Text glätten? Würdet ihr mir das empfehlen? :) |
Re: Pokerkarten während des Spiels erstellen
Kann da denn keiner was zu sagen? Bitte... :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 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-2025 by Thomas Breitkreuz