AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi zufällgie Karte laden
Thema durchsuchen
Ansicht
Themen-Optionen

zufällgie Karte laden

Ein Thema von Penelopee · begonnen am 30. Mai 2006 · letzter Beitrag vom 31. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Penelopee

Registriert seit: 7. Okt 2005
69 Beiträge
 
#1

zufällgie Karte laden

  Alt 30. Mai 2006, 22:16
Hallo!

Spiele gerade ein bischen mit Karten rum.Ich möchte erstmal versuchen in einem Image eine zufällige Karte zu laden.Ich habe einen Ordner in dem alle 32 Karten enthalten sind und möchte eine zuällige Karte der 32 laden.Kann ich dafür random verwenden und wenn ja wie???
Mein Programmtext und die Karten im Anhang!!!

THX im vorraus!
Angehängte Dateien
Dateityp: rar kartenspiel_176.rar (193,6 KB, 40x aufgerufen)
  Mit Zitat antworten Zitat
Clane
(Gast)

n/a Beiträge
 
#2

Re: zufällgie Karte laden

  Alt 30. Mai 2006, 22:37
du könnest zu erst jeder karte eine zahl als konstante zuordnen und dann mit random() so viel karten ziehen lassen und am ende überprüfen ob eine karte (oder in dem fall zahl) 2 mal vorhanden ist wenn ja wird die karte gelöscht und eine neue gezogen
  Mit Zitat antworten Zitat
Penelopee

Registriert seit: 7. Okt 2005
69 Beiträge
 
#3

Re: zufällgie Karte laden

  Alt 30. Mai 2006, 22:42
sorry versteh ich nciht ganz.Kann ich mit random nicht einfach eine Karte ziehen???Warum muss ich Werte zuordnen und Karten dann immer löschen?????
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 06:35
Hallo Penelopee,

Ich würde die Images am Programmstart alle einlesen, entweder erweiterst du deinen TEinzelkarte-Record um das Imgae oder verwendest eine ImageList wobei dann die Indices der Karte im Array der Karten mit denen der Bilder in der ImageList übereinstimmen.

Mit Random() wählst du dann zufällig eine Karte aus und kannst so das entsprechende Bild referenzieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#5

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 09:03
Hallo,

also alle Bilder schon am Anfang zu laden wäre bei 32 Bildern pure Speicherverschwendung.

Es reicht, wenn du am Anfang alle Bilder im Ordner ermittelst und die Dateinamen in den Record schreibst, also für jede Karte den Dateinamen in seinen Record.

Über Random ermittelst du dann die Zufallszahl und kannst dann über DeinArrayVomRecord[ermittelteZufallszahl].FileName das Bild laden.
Sascha
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#6

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 09:38
mkinzler Version ist Optimierter und schneller. Die Daten am Anfang schon zu laden macht im grunde keinen Unterschied. Sie aber zur Laufzeit wieder und wieder und wieder zu laden das kann schon auf den speed lasten (PS: Je nachdem wie groß die sind).
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#7

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 09:49
Wieso?

Der Speed ist der im Endeffekt der gleiche, ob der Start nun einige Minuten dauert, weil alles erstmal geladen werden muss (was nervig ist!) oder ob zwischen durch mal ein Bild für ein paar SEkunden geladen werden muss. (Die Zeiten würden jetzt aber auch nur bei rieeeeesigen Bildern so hoch sein).

Man lädt doch nicht alle Bilder unnötig in den Speicher, weil man sie mal irgendwann brauch. Und wenn du schon am Rande die Dateigröße ansprichst, erst recht nicht. Stell dir mal vor ein Bild ist 2 MB groß. Das ganze mal 32 sind schon 64 MB, die unnötiger Weise flöten gehen und anderen Anwendungen fehlen.
Sascha
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#8

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 10:08
wenn ich wählen könnte zwischen einer Anwendung die am Anfang 30 sec mehr zum laden Brauch und eine die zwischendurch beim aufdecken einer neuen karte, sei es auch nur für 1 sec, sich immer nervigerweise aufhängt würde ich ersteres nehmen.
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 10:27
Zitat:
Man lädt doch nicht alle Bilder unnötig in den Speicher, weil man sie mal irgendwann brauch. Und wenn du schon am Rande die Dateigröße ansprichst, erst recht nicht. Stell dir mal vor ein Bild ist 2 MB groß. Das ganze mal 32 sind schon 64 MB, die unnötiger Weise flöten gehen und anderen Anwendungen fehlen.
Und wenn 1 Bild erst 1 Gig hätte erst

Also in diesem Fall sind es gerade mal 32 Bilder a 7 KB, so daß es kein Problem sein sollte sie am Anfang zu laden. Wenn wirklich nur ein Bild benötigt würde, würde ich es auch später laden.
Vielleicht einigen wir uns j auf einen Kompromiss, legen am Programmstart nur die die Datenpfade ab, und laden wenn benötigt erst das Bild in die Imageliste.
Markus Kinzler
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#10

Re: zufällgie Karte laden

  Alt 31. Mai 2006, 11:33
Der Zugriff auf die Festplatte geht in jedem Fall viel langsamer als der Zugriff auf den Arbeitsspeicher. Wenn die Bilder jetzt nicht mehr haben wie 100MB dann solltest du sie auf jeden Fall am Anfang in den Speicher laden.

Jetzt stell dir mal vor du spielst AoEII oder so und immer wenn eine neue Einheit auf dem Bildschirm auftaucht oder sie sich dreht oder so musst du erst 0.1 sec warten

-> also: Einfach alle Bilder in ein array[0..31] of tbitmap laden und dann mit array[random(32)] drauf zugreifen.
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  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:12 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