![]() |
AW: Ein Spiel mit Delphi programmieren
Liste der Anhänge anzeigen (Anzahl: 1)
bis jetzt habe ich das alles was unten im Anhang ist schon so aufgebaut, nur das bei mir diese zwei WÜrfel nicht zu sehen sind sondern nur zwei von den TImage Komponenten, weil ich i-wie die Würfel da nicht hinsetzen kann.
WIe kann ich das so machen, dass die WÜrfel da zu sehen sind, das brauch ich ja?! Und sonst hab ich halt alles was auch im ANhang zu sehen ist außer das ich halt noch nicht den EInsatz da hin schreiben kann und somit ist auch keine Zahl fürs Guthaben zu sehen. Was würdet ihr mir jetzt empfehlen wie soll ich weiter vorgehen mit den proceduren + das ich die Würfel da reinkriege? Danke im VOrraus! Muss bis Montag fertig werden. |
AW: Ein Spiel mit Delphi programmieren
Ein TImage welches die entsprechende Augenzahl anzeigt. Und eine ImageListe, in der die möglichen Bilder gespeichert sind
|
AW: Ein Spiel mit Delphi programmieren
also mache ich jetzt in ImageListe die sechs Bilder rein, dass alle sechs Möglichkeiten der würfel also 1,2,3,4,5 und 6 dadrin dind? Es müssen dann ja sechs Bilder da drin sein in ImageListe???
Und jetzt habe ich auch schon zwei TImage eingefügt oder muss ich da dann noch was machen außer das ich jetzt nur noch die sechs Bilder da einfügen muss bei dem Projekt? Helft mir da bitte weiter, damit ich für heute das Projekt schonmal fertig habe. Danke |
AW: Ein Spiel mit Delphi programmieren
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
Also habe ich jetzt zwei Buttons mit Close und Würfeln.
Drei Labels mit der Überschrift(Würfelspiel), EinsatzLbl und GuthabenLbl. Dann hab ich noch TComboBox und zwei TImage wo ich dann zwei Würfel mit sechsen hereingefügt habe, denn das ist auch eine Möglichket, spielt ja keine rolle welche möglichkeit ich da einfüge? Zudem hab ich dann noch eine ImageListe mit den sechs Bildern, jeweils die eins,zwei,drei,vier,fünf und sechs, also jede einzelne Seit auf einem Bild. SOll ICH DAS JETZT SO LASSEN, MIT DEM PROJEKT UND MIT DEN PROCEDUREN ANFANGEN? ICH WÜRDE SAGEN, DASS STIMMT JETZT SO ODER? |
AW: Ein Spiel mit Delphi programmieren
also das habe ich jetzt alles im Projekt fertig.
Als nächstes und als letztes brauch ich doch jetzt mehrere schritte für die procedure damit das programm für das WÜrfeln klappt? |
AW: Ein Spiel mit Delphi programmieren
Zitat:
Als nächstes schreibst du auf Papier was, wann und wie reagieren soll. Quasi der logische Programmablauf im Klartext. |
AW: Ein Spiel mit Delphi programmieren
Du kannst die beiden TImages auch zur Entwurfszeit leer lassen. Ich hatte da nur deshalb die "6"-Grafiken hineingeladen, um optisch deutlich zu machen, wozu sie gut sein sollen. Im Spielverlauf sollen sie ja aus der Imageliste befüllt werden.
|
AW: Ein Spiel mit Delphi programmieren
also, wollte ich jetzt zu den proceduren kommen:
Was müsste da mein erster Schritt sein? Kann mir da jemand helfen. Brauche schnell eure Hilfe. |
AW: Ein Spiel mit Delphi programmieren
Erster Schritt: nachdenken, was wann passieren soll.
|
AW: Ein Spiel mit Delphi programmieren
der nächste Schritt ist wie gesagt, das Projekt anhängen und den Programmablauf auf Papier aufschreiben.
|
AW: Ein Spiel mit Delphi programmieren
habe sie jetzt einfach so hingemacht, nur bei mir zeigen sich noch 14 Fehler an.
Kann mir da jemand bei den proceduren helfen, was ich falsch gemacht habe etc. Muss bis morgen fertig werden. Danke schonmal Hier meine proceduren: Was haltet ihr davon, was muss ich da verbessern?
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList, ExtCtrls; type TForm1 = class(TForm) EinsatzLbl: TLabel; EndeBtn: TButton; ImageList1: TImageList; GuthabenLbl: TLabel; EinsatzCbB: TComboBox; Label1: TLabel; TButton: TButton; Image1: TImage; Image2: TImage; procedure EndeBtnClick(Sender: TObject); procedure TButtonClick(Sender: TObject); private { Private-Deklarationen} public { Public-Deklarationen} end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.EndeBtnClick(Sender: TObject); begin close; end; procedure TForm1.TButtonClick(Sender: TObject); var einsatz, guthaben, wurf1, wurf2, augensumme: byte; begin randomize; end; Image1.Visible:=false; Image2.Visible:=false; Image3.Visible:=false; Image4.Visible:=false; Image5.Visible:=false; Image6.Visible:=false; Image7.Visible:=false; Image8.Visible:=false; Image9.Visible:=false; Image10.Visible:=false; Image11.Visible:=false; Image12.Visible:=false; einsatz:=strtoint (einsatzCbB.text); Wurf1:=random(6)+1; wurf2:=random(6)+1; augensumme:=wurf1+wurf2; case augensumme OF 2..6:BEGIN ErgebnisPanel.Caption:='Einsatz verloren'; faktor:= 0 ; end; 7,8,9:BEGIN ErgebnisPanel.Caption:='Einsatz zurück'; faktor:= 1; end; 10:=BEGIN ErgebnisPanel.Caption:=Einsatz verdoppelt'; faktor:= 2; end; 11:=BEGIN ErgebnisPanel.Caption:='Einsatz verdreifacht'; faktor:= 3; end; 12:=BEGIN ErgebnisPanel.Caption:='Einsatz vervierfacht'; faktor:= 4; end; else ErgebnisPanel.Caption:='Würfel auf Kippe :P'; case wurf1 OF 1: BEGIN Image1.visible:=true; Image1.width:=80;end; 2: BEGIN Image2.visible:=true; Image2.width:=80;end; 3: BEGIN Image3.visible:=true; Image3.width:=80;end; 4: BEGIN Image4.visible:=true; Image4.width:=80;end; 5: BEGIN Image5.visible:=true; Image5.width:=80;end; 6: BEGIN Image6.visible:=true; Image6.width:=80;end; END; case wurf2 OF 1:BEGIN Image7.visible:=true; Image7.width:=80;end; 2.BEGIN Image8.visible:=true; Image8.width:=80;end; 3.BEGIN Image9.visible:=true; Image9.width:=80;end; 4.BEGIN Image10.visible:=true; Image10.width:=80;end; 5.BEGIN Image11.visible:=true; Image11.width:=80;end; 6.BEGIN Image12.visible:=true; Image12.width:=80;end; end; end;//of case ;-) Ergebnis2Panel.caption:=inttostr(faktor*einsatz); end; end. |
AW: Ein Spiel mit Delphi programmieren
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
zu den Fehlern:
Zitat:
- randomize nur einmal aufrufen. Am besten im OnCreate des Formulars. Zitat:
|
AW: Ein Spiel mit Delphi programmieren
Irgendwie passt der Quelltext aber nicht zum geposteten Formular. Hast Du jetzt eine Imageliste oder 12 Einzelimages?
|
AW: Ein Spiel mit Delphi programmieren
Zitat:
Du könntest z.B. schon mal das ganze an nur 2 Images anpassen und nicht in deinen "Formeln" noch munter weiter die 12 Images verwenden wollen. Dann könntest du bei der Gelegenheit auch gleich die Namen der anderen Knöpfe mit anpassen. Ich fasse es einfach nicht das du nach 10 Seiten Diskussion was du wie machen sollst immer noch exakt den selben Sorcecode verwendest... |
AW: Ein Spiel mit Delphi programmieren
ich habe eine imageliste und dann habe ich die bilder da von allen sechs möglichkeiten hinzugefügt
was meinte ihr damit:- randomize nur einmal aufrufen. Am besten im OnCreate des Formulars? |
AW: Ein Spiel mit Delphi programmieren
Von einer Imagelist sieht man ein deiner Source gar nichts,
deine Fehler kommen daher, dass du ein end; nach dem randomize im button hast und danach fleißig weiter schreibst, zudem hast du ein else nach einer case anweisung (...) und einige andere nette fehler *edit: sorry, eine Imagelist sieht man schon, aber nicht deren verwendung.... |
AW: Ein Spiel mit Delphi programmieren
*Nach Luft schnapp* Mach einen Doppelklick auf die Form und pack dann dort in den Quältext das Randomize rein, an der anderen Stelle wieder raus. Herrgott, stell Dich doch nicht so dusselig an.
|
AW: Ein Spiel mit Delphi programmieren
So jetzt sind die gröbsten (Schreib-)Fehler raus (und auch mal vernünftig formatiert)
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList, ExtCtrls; type TForm1 = class( TForm ) EinsatzLbl : TLabel; EndeBtn : TButton; ImageList1 : TImageList; GuthabenLbl : TLabel; EinsatzCbB : TComboBox; Label1 : TLabel; Button1 {TButton} : TButton; // Eine Instanz NIE wie die Klasse benennen! Image1 : TImage; Image2 : TImage; procedure EndeBtnClick( Sender : TObject ); procedure TButtonClick( Sender : TObject ); private { Private-Deklarationen} public { Public-Deklarationen} end; var Form1 : TForm1; implementation {$R *.DFM} procedure TForm1.EndeBtnClick( Sender : TObject ); begin close; end; procedure TForm1.Button1Click( Sender : TObject ); var einsatz, guthaben, wurf1, wurf2, augensumme : byte; begin randomize; // Das sollte nur EINMAL in der Anwendung aufgerufen werden // end; // <- Das muss weg Image1.Visible := false; Image2.Visible := false; Image3.Visible := false; Image4.Visible := false; Image5.Visible := false; Image6.Visible := false; Image7.Visible := false; Image8.Visible := false; Image9.Visible := false; Image10.Visible := false; Image11.Visible := false; Image12.Visible := false; einsatz := strtoint( EinsatzCbB.text ); wurf1 := random( 6 ) + 1; wurf2 := random( 6 ) + 1; augensumme := wurf1 + wurf2; case augensumme of 2 .. 6 : begin ErgebnisPanel.Caption := 'Einsatz verloren'; faktor := 0; end; 7, 8, 9 : begin ErgebnisPanel.Caption := 'Einsatz zurück'; faktor := 1; end; 10 : {=} begin // Das = muss weg! ErgebnisPanel.Caption := 'Einsatz verdoppelt '; // Ein ' fehlte faktor := 2; end; 11 : {=} begin // Das = muss weg! ErgebnisPanel.Caption := 'Einsatz verdreifacht'; faktor := 3; end; 12 : {=} begin ErgebnisPanel.Caption := 'Einsatz vervierfacht'; faktor := 4; end; else ErgebnisPanel.Caption := 'Würfel auf Kippe '; end; // Das fehlte hier case wurf1 of 1 : begin Image1.Visible := true; Image1.width := 80; end; 2 : begin Image2.Visible := true; Image2.width := 80; end; 3 : begin Image3.Visible := true; Image3.width := 80; end; 4 : begin Image4.Visible := true; Image4.width := 80; end; 5 : begin Image5.Visible := true; Image5.width := 80; end; 6 : begin Image6.Visible := true; Image6.width := 80; end; end; case wurf2 of 1 : begin Image7.Visible := true; Image7.width := 80; end; // . durch : ersetzt 2 : begin Image8.Visible := true; Image8.width := 80; end; 3 : begin Image9.Visible := true; Image9.width := 80; end; 4 : begin Image10.Visible := true; Image10.width := 80; end; 5 : begin Image11.Visible := true; Image11.width := 80; end; 6 : begin Image12.Visible := true; Image12.width := 80; end; end; // end; // of case // Da ist das End, was oben fehlte ... hier ist es zu viel Ergebnis2Panel.Caption := inttostr( faktor * einsatz ); end; end. |
AW: Ein Spiel mit Delphi programmieren
Damit das auch mit der ImageList funktioniert würde ich das mal so machen: (Mach ich grad deine Hausaufgaben!?)
(hab das jetz im Notepad schnell hingeklatscht, Funktion also nicht getested, deine Image3-12 hab ich einfach mal rausgeschmissen (waren ja sowieso nich auf der Form)....)
Delphi-Quellcode:
Viel Glück weiterhin... procedure TForm1.Create( Sender : TObject ); begin Randomize; // <-- Randomize wird im Oncreate aufgerufen... end; procedure TForm1.EndeBtnClick( Sender : TObject ); begin close; end; procedure TForm1.TButtonClick( Sender : TObject ); var einsatz, guthaben, wurf1, wurf2, augensumme : byte; begin { Image1.Visible := false; <-- Brauch ich nich.... Image2.Visible := false; } einsatz := strtoint( EinsatzCbB.text ); wurf1 := random( 6 ) + 1; wurf2 := random( 6 ) + 1; augensumme := wurf1 + wurf2; case augensumme of 2 .. 6 : begin ErgebnisPanel.Caption := 'Einsatz verloren'; faktor := 0; end; 7, 8, 9 : begin ErgebnisPanel.Caption := 'Einsatz zurück'; faktor := 1; end; 10 : {=} begin // Das = muss weg! ErgebnisPanel.Caption := 'Einsatz verdoppelt '; // Ein ' fehlte faktor := 2; end; 11 : {=} begin // Das = muss weg! ErgebnisPanel.Caption := 'Einsatz verdreifacht'; faktor := 3; end; 12 : {=} begin ErgebnisPanel.Caption := 'Einsatz vervierfacht'; faktor := 4; end; else ErgebnisPanel.Caption := 'Würfel auf Kippe '; end; // Das fehlte hier ImageList1.GetBitmap(Wurf1,Image1.Picture.Bitmap); //<-- Wenn Bitmaps in der Liste sind... ImageList1.GetBitmap(Wurf2,Image2.Picture.Bitmap); //<-- Natürlich auch für das 2. Image //Ich denke mal, größe der Images und der Imagelist wurde bereits im Objektinspektor eingestellt.... Ergebnis2Panel.Caption := inttostr( faktor * einsatz ); end; |
AW: Ein Spiel mit Delphi programmieren
Ich hab noch einen Fehler gefunden, aber den soll der TE selbst beheben ;)
|
AW: Ein Spiel mit Delphi programmieren
Wenn ich auf die Form mit einem Doppelklick die FormCreate hinzufügen will, klappt das nicht
es steht so da: Der Quelltext konnte nicht gefunden werden, um die Methode FormCrate hinzuzufügen. "END." oder INITIALIZATION wurde im Quelltext der Unit nicht gefunden. was bedeudet das, wer kann mir da helfen, weil wenn es da so steht, kann ich ja randomize in OnCreate nicht hinschreiben?! |
AW: Ein Spiel mit Delphi programmieren
...und läuft´s ? :stupid:
|
AW: Ein Spiel mit Delphi programmieren
Setz mal einen der Würfe zum Testen fix auf 6.
|
AW: Ein Spiel mit Delphi programmieren
Zitat:
denkst du denn, der TE weiß, dass die ImageList bei 0 anfängt zu nummerieren? es muss (für den TE) so lauten:
Delphi-Quellcode:
Noedel
ImageList1.GetBitmap(Wurf1-1,Image1.Picture.Bitmap); //<-- Wenn Bitmaps in der Liste sind...
ImageList1.GetBitmap(Wurf2-1,Image2.Picture.Bitmap); //<-- Natürlich auch für das 2. Image |
AW: Ein Spiel mit Delphi programmieren
Spielverderber... wir quälen uns seit Stunden (bald Tagen) dem TE auf die Sprünge zu helfen, damit er auch versteht was er treibt. :roll:
|
AW: Ein Spiel mit Delphi programmieren :warn:
Also ich habe noch immer nur diese Formeln, denn ich habe euch das Problem mit der OnCreate geschildert, da musste ich ja das randomize hinmachen, also wie kann ich das Prolbem beheben wenn ich mit einem DOppelklick auf die Form klicke?
Hier meine FOrmeln bis zu diesem Zeitpunkt.
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ImgList, ExtCtrls; type TForm1 = class(TForm) EinsatzLbl: TLabel; EndeBtn: TButton; ImageList1: TImageList; GuthabenLbl: TLabel; EinsatzCbB: TComboBox; Label1: TLabel; TButton: TButton; Image1: TImage; Image2: TImage; procedure EndeBtnClick(Sender: TObject); procedure TButtonClick(Sender: TObject); private { Private-Deklarationen} public { Public-Deklarationen} end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.EndeBtnClick(Sender: TObject); begin close; end; procedure TForm1.TButtonClick(Sender: TObject); var einsatz, guthaben, wurf1, wurf2, augensumme: byte; begin randomize; Image1.Visible:=false; Image2.Visible:=false; Image3.Visible:=false; Image4.Visible:=false; Image5.Visible:=false; Image6.Visible:=false; Image7.Visible:=false; Image8.Visible:=false; Image9.Visible:=false; Image10.Visible:=false; Image11.Visible:=false; Image12.Visible:=false; einsatz:=strtoint( EinsatzCbB.text ); wurf1 := random( 6 )+1; wurf2 := random( 6 )+1; augensumme := wurf1 + wurf2; case augensumme OF 2..6 : begin ErgebnisPanel.Caption := 'Einsatz verloren'; faktor := 0; end; 7, 8, 9 : begin ErgebnisPanel.Caption := 'Einsatz zurück'; faktor := 1; end; 10 : begin ErgebnisPanel.Caption := 'Einsatz verdoppelt'; faktor := 2; end; 11 : begin ErgebnisPanel.Caption := 'Einsatz verdreifacht'; faktor := 3; end; 12 : begin ErgebnisPanel.Caption := 'Einsatz vervierfacht'; faktor := 4; end; else ErgebnisPanel.Caption := 'Würfel auf Kippe'; end; case wurf1 OF 1: begin Image1.visible := true; Image1.width := 80; end; 2: begin Image2.visible := true; Image2.width := 80; end; 3: begin Image3.visible := true; Image3.width := 80; end; 4: begin Image4.visible := true; Image4.width := 80; end; 5: begin Image5.visible := true; Image5.width := 80; end; 6: begin Image6.visible := true; Image6.width := 80; end; end; case wurf2 OF 1: begin Image7.visible := true; Image7.width := 80; end; 2: begin Image8.visible := true; Image8.width := 80; end; 3: begin Image9.visible := true; Image9.width := 80; end; 4: begin Image10.visible := true; Image10.width := 80; end; 5: begin Image11.visible := true; Image11.width := 80; end; 6. begin Image12.visible := true; Image12.width := 80; end; // of case // Ergebnis2Panel.caption := inttostr( faktor * einsatz ); end; end. |
AW: Ein Spiel mit Delphi programmieren
Sag mal, ignorierst Du andere Posts absichtlich? Du hast immer noch keine Delphi-Tags benutzt, die ganzen Images sind plötzlich wieder da usw. usf. Ich verliere echt die Lust :?
|
AW: Ein Spiel mit Delphi programmieren
benutze bitte die Delphi Tags. Markieren den Quelltext und drücke auf den Helm in der erweiterten Ansicht.
|
AW: Ein Spiel mit Delphi programmieren
Daniel,
bitte nimm erst die mindestens Tausend ratschläge, die hier schon gemacht wurden an und setzte sie in deinem Quelltext (nicht Formeln!!!) um. Du kannst nicht erwarten, dass wir dir hier deine Hausaufgaben machen... @haentschman: Was ist ein TE? |
AW: Ein Spiel mit Delphi programmieren
im Prinzip braucht er sich sein Projekt ja jetzt aus den ganzen Codeschnipseln, die hier schon stehen und als richtig befunden wurden, auch nur zusammensetzen. Eigene Denkarbeit ist jetzt schon nicht mehr benötigt.
Aber wer nicht lesen kann, ist auch nicht im Vorteil ;) //Edit: Rächtschraibunk^^ |
AW: Ein Spiel mit Delphi programmieren
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
und wo finde ich die Delphi Tags in der erweiterten ANsicht bei Delphi4?
|
AW: Ein Spiel mit Delphi programmieren
der TE ist der Thread-Ersteller. Könnte man auch ein Akronym draus machen :thumb:
|
AW: Ein Spiel mit Delphi programmieren
Zitat:
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
Zitat:
Bin auch noch nicht so lange in der DP aktiv... Ändert sich in Zukunft aber =) Meine Erste Frage war aber auch so selten d*ch... Hab mir aber trotzdem nicht mein Programm remote-schreiben :-) lassen |
AW: Ein Spiel mit Delphi programmieren
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Ein Spiel mit Delphi programmieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 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