AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Lösung für 2D Brett
Thema durchsuchen
Ansicht
Themen-Optionen

Lösung für 2D Brett

Offene Frage von "KahPee"
Ein Thema von KahPee · begonnen am 13. Mai 2009 · letzter Beitrag vom 18. Mai 2009
Antwort Antwort
Seite 2 von 4     12 34      
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#11

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 13:14
Diese würde ich aber erst zur Laufzeit erzeugen und dann füllen, denn sonst wird seine *.exe ja unglaublich groß!
Hätte außerdem den Vorteil, dass er einfach die Bilder verändern kann und nicht jedesmal das Programm neu erzeugen müsste!
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 13:18
@SimStar001:Vielen Dank für den Link, allerdings steht dort zum Thema Grafiken im Sinne von JPG und Bitmap, etc nicht allzu viel. Trotzdem schon mal vielen Dank, das ist ein gute Nachschlagewerk...

@Satty67: Ich werde mir den Befehl mal genauer angucken. Im Prinzip werden am Anfang des Programmes alle 49 Felder einmal mit einer Grafik belegt. Anschließend werden zur Laufzeit die Bilder je nach Ereignis wieder geändert.

Mir sind zwar zu dem Thema noch nicht alle Sachen klar aber ich werd mal nach dem Motto "Probieren geht über studieren" anfangen, und falls ich mich festfahre schau ich hier mal wieder rein.

Vielen Dank an alle
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#13

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 13:28
Also das ganze kann man mit einem Record machen, du könntest auch eine eigene klasse erstellen, würde ich zum beispiel so machen.

Aber du sgast ja selbst du bist anfänger, dann hat dass für dich denke ich noch keinen sinn. Soll heißen, probier es ruhig so aus wie du es denkst, dass es funktioniert. wenn am ende alles so läuft wie du es dir vorstellst, dann kannst du ja den nächsten schritt gehen und versuchen es anders, vielleicht eleganter und effektiver zu lösen. Schließlich geht ja probieren über studieren!
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 15:07
Wie das mit Klassen geht wäre schon interessant, da ich in meinem Programm schon einige Klassen schon verwende...
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 15:29
So da komm ich dann nochmal: Ich hatte vor die Felder als zweidimensionalen Array einer Klasse zu verarbeiten. Zweidimensionaler Array damit eine Variable für die X und eine für die Y koordinate ist. Wie ordne ich nun jeder Variable aus dem Array eine Bitmap zu?

Im Prinzip habe ich hier das Problem, dass ich pro Feld eine Bitmap mit einem Feld verknüpfen muss, ist das irgendwie möglich. Bei dieser Verknüpfung muss auch irgendwo(?) irgendwie (?) festgelegt werden wo sich das Bild überhaupt befindet.. Wäre super wenn mir da nochmal jemand auf die Sprünge helfen könnte..

Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 15:54
Du erstellst am besten ein Array of TBitmap, wo du alle möglichen Bilder hineinlädst.

Und in deinem Spielfeld-Array merkst du dir nur den Index, welches Bild gezeichnet werden soll.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 16:00
Ok damit wäre die Zuordnung geklärt..

Wie lege ich dann am Ende fest wo das entsprechende Bild im Programm gezeichnet wird, also die Position? Wie genau ist da dann der Befehl?
Das muss ja wahrscheinlich über eine Pixelangabe ausgehend von links oben gehen oder?
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#18

Re: Lösung für 2D Brett

  Alt 13. Mai 2009, 20:02
Also ich weiß ja nicht wie deine Arrays aussehen, aber ich würde es so machen , dass du halt wie schon vorher vorgeschlagen ein Array hast, was am besten aus einem record besteht:

z.b. so
Delphi-Quellcode:
type TMeinBilderRecord = record
      Image : TImage;
      BildIndex : Integer;
      ...
      end;


var MeinBilderArray : array of TMeinBilderRecord;
somit hättest du ein Array, mit dem Du beliebig viele Images und anderen Kram erzeugen kannst, den du noch so brauchst.
Somit wäre auch eine Positionierung kein Problem, denn jetzt kannst du jedem Image in deinem Array auch eine Position geben.

z.b.
Delphi-Quellcode:
MeinBilderArray[0].Image.left := 100;
MeinBilderArray[0].Image.top := 100;
MeinBilderArray[0].Image.picture.loadfromfile(xyz); // oder halt mit ner Imagelist und dann den Index zuweisen
Aber es kommt halt drauf an wie und was du so alles noch damit machen willst.

Wie gesagt, wenn du nen Record und array verwendest, kannst du auch irgendwann selbst nach deinen Wünschen bzw. Bedürfnissen ne eigene Klasse basteln.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Lösung für 2D Brett

  Alt 14. Mai 2009, 07:07
Ich habe hier mal beschrieben wie man Bilder in einem Grid (Tabelle) anzeigt:

http://www.delphipraxis.net/internal...t.php?t=131850

Vieleicht hilft dir das weiter.
  Mit Zitat antworten Zitat
Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Lösung für 2D Brett

  Alt 14. Mai 2009, 14:14
Riesen Dankeschön, dass sollte mich einen riesigen schritt weiterbringen. Bei deinem record ist mir aufegefallen, dass du "BildIndex" deklariert hast.
Die folgende Frage hat mit Grafiken nichts mehr zu tun aber ich frag mal trotzdem:

Bildindex gibt dem Bild ganz klar eine Zuordnung aber wie erzeuge ich nun das Bild mit dem Bildindex=2?

Wie ist da der beste Befehl. Im Moment fällt mir das ganze nur mithilfe einer riesigen If, else if- funktion ein.

ungefähr so:

Delphi-Quellcode:
if feldarray[1].bildindex=2 then
begin
Feldarray[1]:=Tbitmap.create;
Feldarray[1].Loadfromfile(BildMitBildindex2);
end
else if feldarray[1].bildindex=3 then
begin
Feldarray[1].bild:=Tbitmap.create;
Feldarray[1].bild.Loadfromfile(BildMitBildindex3);
 //und so weiter
end;

Das ganze dann für jedes Feld... nen bisschen umständlich oder? wie kriege ich hin, dass ich anstatt so für jedes Feld das zu machen einfach nur einmal deklarieren muss und die Prozedur auf jedes Feld anzuwenden ist.

Sorry dass ich wahrscheinlich ne richtig blöde frage stelle aber da scheine ich nen Brett vorm Kopf zu haben.

Mfg KahPee
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 04:17 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