![]() |
Kleines Spiel in Delphi
Hallo und Guten Tag.
Muss bis Sonntag Abend mit meinem kleinen spiel fertig sein und weis einfach nicht mehr weiter. Ich poste mal den Quellcode ..vielleicht kann mir ja jemand helfen.
Delphi-Quellcode:
so und nun möchte ich das Spiel so programmieren, dass wenn alle 7 Images angeklickt wurden und visible:=false sind , dass dann das Spiel endet und man gewonnen hat.
// Einsameln der Images bzw. der Haselnüsse
procedure TForm1.Haselnuss1Click(Sender: TObject); begin Haselnuss1.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss7Click(Sender: TObject); begin haselnuss7.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss4Click(Sender: TObject); begin haselnuss4.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss6Click(Sender: TObject); begin haselnuss6.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss3Click(Sender: TObject); begin haselnuss3.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss2Click(Sender: TObject); begin haselnuss2.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss5Click(Sender: TObject); begin haselnuss5.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; Mein Problem ist das die proceduren ja alle von einander unabhängig sind und eine IF Struktur nicht funktioniert wenn ich sie jetzt anfügen würde. Bitte helft mir!!! Viele Grüße honkundich |
Re: Kleines Spiel in Delphi
Delphi-Quellcode:
so müssts funktionieren und hallo in der dp!
// Einsameln der Images bzw. der Haselnüsse
... public procedure HaselnussCheck; ... procedure TForm1.HaselnussCheck; begin if (Haselnuss1.visible = false) and (Haselnuss2.visible = false) and (Haselnuss3.visible = false) and (Haselnuss4.visible = false) and (Haselnuss5.visible = false) and (Haselnuss6.visible = false) and (Haselnuss7.visible = false) then begin showmessage('gewonnen'); close; end; end; procedure TForm1.Haselnuss1Click(Sender: TObject); begin Haselnuss1.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; procedure TForm1.Haselnuss7Click(Sender: TObject); begin haselnuss7.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; procedure TForm1.Haselnuss4Click(Sender: TObject); begin haselnuss4.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; procedure TForm1.Haselnuss6Click(Sender: TObject); begin haselnuss6.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; procedure TForm1.Haselnuss3Click(Sender: TObject); begin haselnuss3.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; procedure TForm1.Haselnuss2Click(Sender: TObject); begin haselnuss2.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; procedure TForm1.Haselnuss5Click(Sender: TObject); begin haselnuss5.visible:=false; Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; HaselnussCheck; end; du überprüfst bei jedem click ob alle unsichtbar sind wenn ja kommt eine Meldung. mfg tobi |
Re: Kleines Spiel in Delphi
Oder noch ne andere Variante
Delphi-Quellcode:
private
{ Private-Deklarationen } procedure SpieleLied; //hier ohne TForm1 public { Public-Deklarationen } end; var Form1: TForm1; i:Integer; implementation {$R *.dfm} procedure TForm1.SpieleLied; //Sparst Du Dir ein paar Zeilen unter private einfügen begin Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; end; procedure TForm1.Haselnuss1Click(Sender: TObject); begin inc(i); // i um 1 erhöhen SpieleLied; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss7Click(Sender: TObject); begin inc(i); SpieleLied; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss4Click(Sender: TObject); begin inc(i); SpieleLied; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss6Click(Sender: TObject); begin inc(i); SpieleLied; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss3Click(Sender: TObject); begin inc(i); SpieleLied; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss2Click(Sender: TObject); begin inc(i); SpieleLied; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss5Click(Sender: TObject); begin inc(i); SpieleLied; if i=7 then Form1.Close; end; end. |
Re: Kleines Spiel in Delphi
Zitat:
du vergisst das hide ;-)
Delphi-Quellcode:
(sender as timage).Visible := false;
--> edit so kann man noch mehr sparen ;-)
Delphi-Quellcode:
private
{ Private-Deklarationen } procedure Spiel(Sender: TObject); //hier ohne TForm1 public { Public-Deklarationen } end; var Form1: TForm1; i:Integer; implementation {$R *.dfm} procedure TForm1.Spiel(Sender: TObject); //Sparst Du Dir ein paar Zeilen unter private einfügen begin inc(i); Mediaplayer1.filename:='misc1-22.wav'; MediaPlayer1.open; MediaPlayer1.play; (sender as timage).Visible := false; if i=7 then Form1.Close; end; procedure TForm1.Haselnuss1Click(Sender: TObject); begin Spiel(sender); end; procedure TForm1.Haselnuss7Click(Sender: TObject); begin Spiel(sender); end; procedure TForm1.Haselnuss4Click(Sender: TObject); begin Spiel(sender); end; procedure TForm1.Haselnuss6Click(Sender: TObject); begin Spiel(sender); end; procedure TForm1.Haselnuss3Click(Sender: TObject); begin Spiel(sender); end; procedure TForm1.Haselnuss2Click(Sender: TObject); begin Spiel(sender); end; procedure TForm1.Haselnuss5Click(Sender: TObject); begin Spiel(sender); end; end. |
Re: Kleines Spiel in Delphi
Stimmt sorry. :wink:
|
Re: Kleines Spiel in Delphi
Zitat:
|
Re: Kleines Spiel in Delphi
WooooWWW Danke Danke!!! hätte niemals damit gerechnet so schnell eine Lösung für mein Problem zu erhalten, bzw. eine Antwort zu bekommen. :dancer: :hello:
werde dann gleich morgen mal versuchen mein Programm zu ändern und hoffe das ich es zum Laufen bekommen so das es funktioniert. Bis morgen dann, ich melde mich wieder |
Re: Kleines Spiel in Delphi
Hab es nun doch gleich ausprobiert und alles hat geklappt, hab aber die erste, längere Variante genommen damit ich nicht so viel ändern musste und weil ich sonst durcheinander gekommen wäre, die Hauptsache ist ja das es funktioniert.
Habe nun noch eine Frage zu dem Befehl showmessage. Dabei steht bei mir immer als Überschrift in dem Fenster was ich dann öffnet Project.... irgendwas, kann man davon auch den Text ändern oder könnte mir jemand helfen wie man eine Gewinn oder Verlorenmeldung in einem Label ausgeben kann?!? Des Weiteren hatte ich noch die Idee dass alle eingesammelten Images gezählt werden bzw aufaddiert werden. wie könnte ich eine solche amsprechende,grafische Ausgabe erstellen?? Nun wirklich bis morgen!!! Gute Nacht :-) :mrgreen: :mrgreen: |
Re: Kleines Spiel in Delphi
Da hilft
![]()
Delphi-Quellcode:
Edit: :shock: Alle vergessen... :shock:
Application.MessageBox('Dein Text', 'Die Überschrift', MB_OK or MB_ICONINFORMATION);
Herzlich Willkommen in der DP !!! :dp: |
Re: Kleines Spiel in Delphi
Zitat:
|
Re: Kleines Spiel in Delphi
Delphi-Quellcode:
So sieht jetzt das Ende aus und es klappt auch alles, schon mal großen Dank für eure Hilfe!!!!
begin
if (haselnuss1.visible=false)and (haselnuss2.visible=false)and (haselnuss3.visible=false)and (haselnuss4.visible=false)and (haselnuss5.visible=false)and (haselnuss6.visible=false)and (haselnuss7.visible=false)then begin timer1.enabled:=false; timer2.enabled:=false; progressbar1.visible:=false; Counter_sec:=0; //Soundtrack für das Spiel beenden Mediaplayer2.filename:='Propellerheads - Spybreak! (Short One).mp3'; Mediaplayer2.close; Button1.caption:='Neues Spiel starten'; // Gewinnmeldung inklusive Gewinnersoundtrack Mediaplayer3.filename:='Queen - We Are The Champions.mp3'; MediaPlayer3.open; MediaPlayer3.play; end; end; Ich würde gerne noch ne Gewinnmeldung oder halt eben eine Meldung das man verloren hat über ein Label oder ähnliches ausgeben. Und was ich noch fragen wollte, kann man einen Button vom Aussehen und farblich etwas auffrischen, die grauen Buttons gefallen mir nicht so ganz. Viele Grüße honkundich :wiejetzt: :wink: |
Re: Kleines Spiel in Delphi
Zitat:
![]() |
Re: Kleines Spiel in Delphi
Delphi-Quellcode:
usw.......... Ich möchte nun durch 2 weitere Buttons..einer LEICHT der andere SCHWER die Schwierigkeit vom Benutzer auswählen lassen, und zwar so das ich einfach nur den interval vom Timer ändere.
procedure TForm1.Button1Click(Sender: TObject);
begin if button1.caption = 'Spiel abbrechen' then begin timer1.enabled:=false; timer2.enabled:=false; button1.caption:='Neues Spiel beginnen'; Startbildschirm.visible:=true; haselnuss1.visible:=false; haselnuss2.visible:=false; haselnuss3.visible:=false; haselnuss4.visible:=false; haselnuss5.visible:=false; haselnuss6.visible:=false; haselnuss7.visible:=false; haselnuss8.visible:=false; haselnuss9.visible:=false; haselnuss10.visible:=false; haselnuss11.visible:=false; haselnuss12.visible:=false; scrat.visible:=false; progressbar1.visible:=false; // Soundtrack ausschalten Mediaplayer2.filename:='Propellerheads - Spybreak! (Short One).mp3'; MediaPlayer2.close; end else if button1.caption = 'Neues Spiel starten' then begin timer1.enabled:=true; timer2.enabled:=true; button1.caption:='Spiel abbrechen'; Startbildschirm.visible:=false; haselnuss1.visible:=true; haselnuss2.visible:=true; haselnuss3.visible:=true; haselnuss4.visible:=true; haselnuss5.visible:=true; haselnuss6.visible:=true; haselnuss7.visible:=true; haselnuss8.visible:=true; haselnuss9.visible:=true; haselnuss10.visible:=true; haselnuss11.visible:=true; haselnuss12.visible:=true; scrat.visible:=true; Kann mir da jemand helfen??? Und wie kann ich eine Hintergrundgrafik einfügen bwz es verhinden das sie alle anderen Images überdeckt?!? Und danke für eure Hilfe bisher..echt super..mein Programm ist fast fertig :-) [edit=Admin]Delphi-Tag korrigiert. Mfg, Daniel[/edit] |
Re: Kleines Spiel in Delphi
Das Image, was Du hinten haben möchtest klickst Du mit der rechten Maustaste an und wählst "Nach hinten schicken".
Du solltest dann auch ![]()
Delphi-Quellcode:
procedure TForm1.SchwerLeichtClick(Sender: TObject);
begin If Sender=Leicht1 then Timer1.Interval:=500 else Timer1.Interval:=250; end; Zitat:
|
Re: Kleines Spiel in Delphi
fehlt da nicht irgendwo was? wenn ich das so einbaue kommt z.B undefinierter Bezeichner leicht1 usw.
Verstehe das nicht wirklich. :wiejetzt: |
Re: Kleines Spiel in Delphi
Der Sender ist das Objekt das die Message sendet. In diesem Fall müsstest du 'Leicht1' durch den Namen deines Buttons für den Schwierigkeitsgrad Leich ändern. Außerdem musst du diese Procedure bei beiden Knöpfen beim OnClick eintragen.
|
Re: Kleines Spiel in Delphi
Du kannst auch beide Buttons einzeln verwenden.
Delphi-Quellcode:
Dazu zwei Buttons auf die Form setzen und mit Namen Licht1 und Schwer1 benennen, danach das OnClick setzen und den Quelltext rein setzen.
procedure TForm1.Leicht1Click(Sender: TObject);
begin Timer1.Interval:=500; end; procedure TForm1.Schwer1Click(Sender: TObject); begin Timer1.Interval:=250; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 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