AW: Spiel programmieren, Hilfe benötigt.
klar kannst du das nicht vor dem Programmstart wissen, aber während der Ausführung. Du mußt auch ein wenig Quelltext schreiben, damit der Computer weiß, was er tun soll. :roll:
z.B. 1. Zufallszahl ermitteln 2. z.B. 5 ermittelt 3. Bild Nr. 5 laden 4. in Bild.Tag die 5 eintragen ...jetzt hat das Bild eine eindeutige "Eigenschaft". Der Wert in Tag ist in jedem Bild dann eindeutig. |
AW: Spiel programmieren, Hilfe benötigt.
Eben, und dazu muss man ja nur wissen, welche Zahl sich hinter der jeweiligen Grafik verbirgt. Dazu fallen mir mehrere Möglichkeiten ein, von elegant und OOP-konform bis leicht verständlich, aber fehleranfällig.
|
AW: Spiel programmieren, Hilfe benötigt.
Meinst du die ListevonDateinamen?
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var ListeVonDateinamen:TStringlist; DateinameIndex:Integer; i:Integer; begin begin for i := 1 to 24 do TImage(FindComponent('Image' + IntToStr(i))).Visible := true; end; Randomize; ListeVonDateinamen:=TStringList.Create; try ListeVonDateinamen.add('H:\Informatik-Bilder\+1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\+4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-1.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-2.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-3.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-4.bmp'); ListeVonDateinamen.add('H:\Informatik-Bilder\-4.bmp'); for i:=0 to Form1.ComponentCount-1 do if Components[i] is TImage then begin DateinameIndex:=Random(ListeVonDateinamen.count); TImage(Components[i]).Picture.LoadFromFile(ListeVonDateinamen[DateinameIndex]); ListeVonDateinamen.Delete(DateinameIndex); end; finally ListeVonDateinamen.Free; end; end; procedure TForm1.Label19Click(Sender: TObject); begin Image16.Visible := False; end; procedure TForm1.Label18Click(Sender: TObject); begin Image15.Visible := False; end; procedure TForm1.Label20Click(Sender: TObject); begin Image17.Visible := False; end; procedure TForm1.Label3Click(Sender: TObject); begin Image1.Visible := False; end; procedure TForm1.Label4Click(Sender: TObject); begin Image2.Visible := False; end; procedure TForm1.Label5Click(Sender: TObject); begin Image3.Visible := False; end; procedure TForm1.Label6Click(Sender: TObject); begin Image4.Visible := False; end; procedure TForm1.Label7Click(Sender: TObject); begin Image5.Visible := False; end; procedure TForm1.Label8Click(Sender: TObject); begin Image6.Visible := False; end; procedure TForm1.Label9Click(Sender: TObject); begin Image7.Visible := False; end; procedure TForm1.Label10Click(Sender: TObject); begin Image8.Visible := False; end; procedure TForm1.Label11Click(Sender: TObject); begin Image9.Visible := False; end; procedure TForm1.Label12Click(Sender: TObject); begin Image10.Visible := False; end; procedure TForm1.Label13Click(Sender: TObject); begin Image11.Visible := False; end; procedure TForm1.Label14Click(Sender: TObject); begin Image12.Visible := False; end; procedure TForm1.Label16Click(Sender: TObject); begin Image13.Visible := False; end; procedure TForm1.Label17Click(Sender: TObject); begin Image14.Visible := False; end; procedure TForm1.Label21Click(Sender: TObject); begin Image18.Visible := False; end; procedure TForm1.Label22Click(Sender: TObject); begin Image19.Visible := False; end; procedure TForm1.Label23Click(Sender: TObject); begin Image20.Visible := False; end; procedure TForm1.Label24Click(Sender: TObject); begin Image21.Visible := False; end; procedure TForm1.Label25Click(Sender: TObject); begin Image22.Visible := False; end; procedure TForm1.Label26Click(Sender: TObject); begin Image23.Visible := False; end; procedure TForm1.Label27Click(Sender: TObject); begin Image24.Visible := False; end; end. Das ist mein kompletter momentaner Text, nochmal etwas überarbeitet... Gibts hier eigentlich ne Spoiler-Funktion, dass die Antwort nicht so lang wird? Zitat:
Warum bin ich da nicht selbst drauf gekommen? |
AW: Spiel programmieren, Hilfe benötigt.
...*seufz*...
Delphi-Quellcode:
fertsch...
if Components[i] is TImage then
begin DateinameIndex:=Random(ListeVonDateinamen.count); TImage(Components[i]).Picture.LoadFromFile(ListeVonDateinamen[DateinameIndex]); TImage(Components[i]).Tag:= DateinameIndex; ListeVonDateinamen.Delete(DateinameIndex); end; Quatsch. Eben hab ich gesehen, daß du keine fortlaufenden Bilder hast. Damit kannst du den Index nicht verwenden. Du mußt dir was einfallen lassen, den "Wert" des Bildes zu ermitteln. |
AW: Spiel programmieren, Hilfe benötigt.
Da Befüllen der Stringliste kannst Du übrigens mit 2 Schleifen eleganter und weniger fehleranfällig machen.
@haentschman: mit dem Index kommst Du so aber nicht zum Ziel. |
AW: Spiel programmieren, Hilfe benötigt.
... sry, schwachsinniges Post von mir ... ich sollte erst denken, dann schreiben *gg*
|
AW: Spiel programmieren, Hilfe benötigt.
Gibt es unter Delphi 3 bereits TStrings.AddObject?
|
AW: Spiel programmieren, Hilfe benötigt.
Ich weiß nicht, wo ich das finde, momentan bin ich sowas von verwirrt, vom Lehrer und von allem.
Ich bin echt kurz vorm Aufgeben... |
AW: Spiel programmieren, Hilfe benötigt.
Schau doch einfach in die mitgelieferte Hilfe. Ggf. musst Du allerdings erst ein MS-Tool installieren, damit *.hlp-Dateien auch angezeigt werden.
|
AW: Spiel programmieren, Hilfe benötigt.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 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