Delphi-PRAXiS
Seite 1 von 17  1 2311     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Spiel programmieren, Hilfe benötigt. (https://www.delphipraxis.net/157611-spiel-programmieren-hilfe-benoetigt.html)

Connor Temple 18. Jan 2011 11:02

Spiel programmieren, Hilfe benötigt.
 
Ich versuche, ein Spiel gegen den Computer zu programmieren, allerdings treten gleich am Anfang ein paar Probleme auf:
Ich habe mir Bilder als BitMap erstellt, die später vom Programm zufällig auf 24 Labels verteilt werden sollen.
Wie lade ich die Bilder im Programmtext ins Programm?

DeddyH 18. Jan 2011 11:03

AW: Spiel programmieren, Hilfe benötigt.
 
Entweder im OnPaint direkt auf das Formular zeichnen oder 24 TImage-Komponenten auf dem Form verteilen und die Bilder dann dort hinein laden.

Connor Temple 18. Jan 2011 11:06

AW: Spiel programmieren, Hilfe benötigt.
 
Aber immer in zufälliger Verteilung, sonst würde ichs ja wissen.

DeddyH 18. Jan 2011 11:11

AW: Spiel programmieren, Hilfe benötigt.
 
Dann erstell Dir ein Array oder eine Liste und "mische" die Einträge. Wie man das macht, steht mehrfach im Forum. Anschließend gehst Du diese Liste durch und verteilst die Bilder auf die Images.

Connor Temple 21. Jan 2011 16:03

AW: Spiel programmieren, Hilfe benötigt.
 
Und wie lade ich die Bilder im Programmtext?
Da wusste sogar mein Lehrer nicht weiter >.<

lbccaleb 21. Jan 2011 16:06

AW: Spiel programmieren, Hilfe benötigt.
 
Zitat:

Zitat von Connor Temple (Beitrag 1076410)
Und wie lade ich die Bilder im Programmtext?
Da wusste sogar mein Lehrer nicht weiter >.<

Dann sag mal deinem Lehrer, er solle lieber was anderes Unterrichten!

Memnarch 21. Jan 2011 16:23

AW: Spiel programmieren, Hilfe benötigt.
 
@Caleb: Du glaubst garnicht, wievielen Lehrern mand ass dan sagen müsste ;)

@Topic:
Code:
ImageName.Picture.LoadFromFile('Dateiname');
Alternativ machst du dir soviele TBitmaps wie du verschiedene Bilder hast, lädst dan jedes bild in ein anderes TBitmap und machst dann bei den Images nurnoch

Code:
ImageName.picture.assign(Bitmap);
MFG
Memnarch

p80286 21. Jan 2011 17:27

AW: Spiel programmieren, Hilfe benötigt.
 
Zitat:

Zitat von Connor Temple (Beitrag 1076410)
Und wie lade ich die Bilder im Programmtext?
Da wusste sogar mein Lehrer nicht weiter >.<

Man muß nicht alles Wissen.
Man muß nur wissen wo es steht!

Gruß
K-H

WM_CLOSE 21. Jan 2011 20:31

AW: Spiel programmieren, Hilfe benötigt.
 
Was DeddyH meinte (so hab ich das vestanden):
Delphi-Quellcode:
var
  ListeVonDateinamen:TStringlist;
  DatenameIndex:Integer;
  i:Integer;
begin
  Randomize; //EIGENTLICH SOLLTEN WIR DAS IM FORMCREATE ODER SO MACHEN(nur einmal aufrufen)

  ListeVonDateinamen:=TStringList.Create;            //wir erzeugen eine Stringlist (, die wir unten wieder freigeben)
  try
    ListeVonDateinamen.add('C:\pfad\dateiname1.bmp'); //Die Stringlist muss jedes mal befüllt werden
    ListeVonDateinamen.add('C:\pfad\dateiname2.bmp'); //Oder aus einer Anderen kopiert
    ListeVonDateinamen.add('C:\pfad\dateiname3.bmp'); //weil Unten Einträge gelöscht werden (damit sie nicht 2 mal vorkommen)
    ListeVonDateinamen.add('C:\pfad\dateiname4.bmp'); //Übrigens: Dateinamen NIEMALS so hinschreiben, sondern am Besten einen Pfad relativ zu der .exe angeben (s.ParamStr(0))
   
    for i:=0 to Form1.ComponentCount-1 do            //hier laufen wir alle auf dem Formular platzierten Komponenten durch
    begin
      if Form1.Components[i] is TImage then          //und wenn wir ein TImage finden, dann
      begin
        DateinameIndex:=Random(ListeVonDateinamen.count)                  //machen wir erst mal eine Zufallszahl
        ImageName.Picture.LoadFromFile(ListeVonDateinamen[DatenameIndex]; //und laden das Bild mit dem Dateinamen, der in der Stringlist mit dem Index DatenameIndex liegt
        ListeVonDateinamen.Delete(DateinameIndex);                        //dann löschen wir den Eintrag, damit wir nicht 2 mal das gleiche Bild laden
      end;
    end;
  finally                                           //selbst wenn oben seit den try etwas schief läuft kommen wir hier rein
    FreeAndNil(ListeVonDateinamen);                 //und geben unsere stringlist wieder frei
  end;
end;
Wichtig dürfte sein, dass die Anzahl der Elemente in der Stringlist >= der Anzahl der TImages ist (- sonst ist die SL leer)


Ausserdem kopiere nicht einfach den code (den ich übrigens mangels Delphi nicht getestet habe), sondern sieh dir an was er macht und programmiere es dann selbst, sonst lernst du dabei gar nichts (spreche aus Erfahrung)

Connor Temple 25. Jan 2011 07:24

AW: Spiel programmieren, Hilfe benötigt.
 
Jetzt versteh ich gar nichts mehr -.-

Also, das Spiel, soll ein Spiel gegen den Computer werden, mit den Zahlen von -4 - -1 und den Zahlen 1 - 4 befüllt werden, diese Zahlen sind aber auf Bildern, die ich in Images laden will.
Außerdem soll das Spiel in einem 5x5 Feld gespielt werden und man startet immer in der Mitte, die Zahlen in dem Images sollen zufällig auf den restlichen 24 Plätzen verteilt werden.
Wenn man das Spiel dann startet darf man nur in seiner vertikalen Reihe eine Zahl auswählen und der Computer wählt dann in der horizontalen Reihe, von der man selbst die Zahl gewählt hat, die möglichst höchste Zahl, also das beste für sich.
Ziel des Spiels ist es die höhere Punktzahl als der PC zu bekommen.
Die Verteilung der Zahlen ist 3x von jeder Zahl.

Ich hab jetzt 24 Images gemacht, wo zufällig etwas reingeladen werden soll.
Dazu ein Neu-Button, der die Bilder dort zufällig reinladen soll.
Wenn ich das Spiel dann starte will ich auf eins der Images der vertikalen Reihe klicken können, nirgendwo sonst. Dieses Image soll dann verschwinden. Dann soll der PC die für sich beste Zahl wählen. Dort soll dann das X hingesetzt werden und man selbst darf wieder in der vertikalen Reihe wählen, nachdem man einen 2. Weiter-Button drückt und die Punkte zur Zwischenpunktzahl für sich und den PC zusammengezählt werden.
Das Spiel endet, wenn man selbst, oder der PC nicht mehr wählen kann.
Dann soll die Gesamtpunktzahl verglichen werden und eine Ausgabe erscheinen, wer gewonnen hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr.
Seite 1 von 17  1 2311     Letzte » 

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