AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Pokerkarten während des Spiels erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Pokerkarten während des Spiels erstellen

Offene Frage von ".chicken"
Ein Thema von .chicken · begonnen am 20. Feb 2007 · letzter Beitrag vom 24. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#1

Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 09:13
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:
//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
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?

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?
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 14:45
Zitat von .chicken:
Erstens, hab ich keine Idee wie ich den Text den ich auf den Canvas schreibe zentrieren soll
Mit Delphi-Referenz durchsuchenTextExtend kriegst du die Breite und Höhe eines Textes auf einem Canvas heraus. So lässt sich errechnen, wo der Text stehen muss.

Zitat von .chicken:
Die Schrift wird mir zu wenig "weich" (dh Pixelig) gezeichnet
Such mal nach Anti-Aliasing bzw. Kantenglättung

Zitat von .chicken:
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?
Delphi-Referenz durchsuchenTImage.Stretch
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#3

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 14:50
Danke, das seh ich mir mal an!
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#4

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 15:10
So, dass mit dem TextExtent hat super geklappt, danke dafür!

Zum Anti-Aliasing hab ich nur folgendes gefunden:
http://www.delphipraxis.net/internal...t=antialiasing

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
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 15:23
Zitat von .chicken:
Zum Anti-Aliasing hab ich nur folgendes gefunden:
http://www.delphipraxis.net/internal...t=antialiasing

Ich entnehme daraus, dass ich das selbst programmieren müsste und es dafür keine vorgefertigte Möglichkeit gibt, lieg ich damit richtig?
In Delphi drin gibt es keine solche Lösung, aber kannst die von dir verlinkte Prozedur in dein Projekt reinkopieren.

Zitat von .chicken:
So und zum TImage.Strech...dann müsste ich das Bitmap in n Image packen oder?
Joa, glaub schon. Aber zur Ausgabe von Bildern sind Images ja auch gedacht.

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)
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#6

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 15:37
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)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 16:32
Also eigentlich sollte das mit Sleep ja gehn.

Aber kannst ja mal ein "Manuelles" sleep machen.

Delphi-Quellcode:
// Wartet Value ms lang.
Procedure Warte(Value:Integer);
var d1 : dword;
begin
  d1 := Gettickcount;
  while Gettickcount - d1 < Value do
    Application.processmessages;
end;
Aber vorsicht habs Blind gecoded.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#8

Re: Pokerkarten während des Spiels erstellen

  Alt 20. Feb 2007, 16:38
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
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#9

Re: Pokerkarten während des Spiels erstellen

  Alt 21. Feb 2007, 17:40
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?
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#10

Re: Pokerkarten während des Spiels erstellen

  Alt 23. Feb 2007, 18:45
Kann da denn keiner was zu sagen? Bitte...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz