AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Spiel programmieren, Hilfe benötigt.
Thema durchsuchen
Ansicht
Themen-Optionen

Spiel programmieren, Hilfe benötigt.

Ein Thema von Connor Temple · begonnen am 18. Jan 2011 · letzter Beitrag vom 5. Apr 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#1

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:36
Ich hatte es ja schon einmal angesprochen: jede Komponente verfügt über eine Eigenschaft namens "Tag". Dabei handelt es sich um eine Integer, die Du als Programmierer völlig frei belegen kannst, denn genau dafür ist sie da. Lädst Du also in Image1 das Bild mit der 4, schreibst Du in die Tag-Eigenschaft eben auch die 4.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Connor Temple
Connor Temple

Registriert seit: 16. Nov 2010
89 Beiträge
 
#2

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:38
Schreibe ich die manuell?
Wenn ja, dann funktionirt das wahrscheinlich nicht, weil die ja zufällig belegt werden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#3

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:40
Auch wenn die zufällig belegt werden, solltest Du doch den aktuellen Zufallswert kennen, sonst machst Du etwas falsch.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#4

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:42
...du machst es uns aber nicht grad leicht
Zitat:
Lädst Du also in Image1 das Bild mit der 4, schreibst Du in die Tag-Eigenschaft eben auch die 4.
  Mit Zitat antworten Zitat
Benutzerbild von Connor Temple
Connor Temple

Registriert seit: 16. Nov 2010
89 Beiträge
 
#5

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:44
...du machst es uns aber nicht grad leicht
Zitat:
Lädst Du also in Image1 das Bild mit der 4, schreibst Du in die Tag-Eigenschaft eben auch die 4.
Da steht immer, schreibe ich, aber das kann ich vor Programmstart doch nicht wissen, was genau da reingeladen werden soll.
Da das ja zufällig reingeladen wird, ist das doch sehr schwer.
Muss ich dann mit If arbeiten?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#6

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:46
Benutzt Du jetzt die Stringliste, wie irgendwann einmal vorgeschlagen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Connor Temple
Connor Temple

Registriert seit: 16. Nov 2010
89 Beiträge
 
#7

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:59
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?

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.

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.
Du meinst, ich soll die Bilder vor Programmstart den Zahlen zuweisen und dann die Zahlen mit den Bildern verteilen?
Warum bin ich da nicht selbst drauf gekommen?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#8

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 08:06
...*seufz*...

Delphi-Quellcode:
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;
fertsch...

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.

Geändert von haentschman ( 1. Feb 2011 um 08:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#9

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 08:09
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#10

AW: Spiel programmieren, Hilfe benötigt.

  Alt 1. Feb 2011, 07:48
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.

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.
  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 13:05 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