Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Snake Spiel (https://www.delphipraxis.net/152558-snake-spiel.html)

Cueppi 27. Jun 2010 10:29


Snake Spiel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo DelphiPraxis,

ich muss zum Abschluss dieses Schuljahres das Spiel Snake programmieren.
Jedoch habe ich noch einige Fragen!!


Ich weiß nicht ob ich die Klassen auslagern muss, wenn ja, könne mir da jemand helfen, da ich da erst am ende dran gedacht hab :(
und wie ihr merken werdet habe ich einen Sound eingefügt.
Ich möchte, das dieser Sound nur abgespielt wird, wenn man auf den "BtnStart" klickt, jedoch wird er jetzt abgespielt, wenn sich das Spiel öffnet.
Wenn ich den befehl zum abspielen in die procedure von "BtnStart" lege, wird der Sound zwar beim klicken auf den Button abgespielt, jedoch auch wenn ich die anderen Buttons anklicke.
Ich möchte aber das der Sound nur abgespielt wird, wenn der StartButton angeklickt wird!

Ich bitte um dringende Hilfe ! :)

Mfg.

Cueppi

P.S: Datei ist im Anhang :)
Danke für die super Hilfe hier!!!!

haentschman 27. Jun 2010 10:37

AW: Snake Spiel
 
Hallo und willkommen in der DP... :dp:

sei doch bitte so nett und hänge die PAS und einen Screenshot an deinen Beitrag an. Bei so einem Download weiß man nie was man bekommt :zwinker:

...dann wirst du hier geholfen. :zwinker:

DeddyH 27. Jun 2010 10:38

AW: Snake Spiel
 
Hallo und Willkommen in der DP :dp:,

Du kannst Dateien an Deinen Beitrag anhängen, dann bleiben Sie uns auch erhalten, was bei externen Links nicht immer der Fall ist. Und ich verstehe Dein Problem nicht ganz: pack den Befehl zum Sound abspielen doch einfach ins OnClick des Buttons.

Cueppi 27. Jun 2010 10:42

AW: Snake Spiel
 
Datei ist im anhang ! :)

danke!!!!

ja habe ich versucht, dann spielt der trotzdem immer ab.
Moment:
Delphi-Quellcode:
procedure TForm1.BtnStartClick(Sender: TObject);
 var
  X, Y: Integer;
  begin
     BtnStart.Enabled := False;
     PunkteZaehler:= 0;
     for X:=0 to BSB do
     for Y:=0 to HSB do
     map[X, Y] := 0;
     kopf := Point(1, 1);
     laengesnake := 3;
     richtung := Point(0, 1);
     map[kopf.X, kopf.Y] := laengesnake;
     neuesfressen;
     bewegungSchlange;
     AktiviereButtons(True);
     ende := False;
     Timer1.Enabled := True;
     Startbild.Visible:=false;
     ZPunkte.Visible:=true;
     APunkte.Visible:=true;
     BtnHoch.Visible:=True;
     BtnLinks.Visible:=True;
     BtnRechts.Visible:=True;
     BtnUnten.Visible:=True;
PlaySOUND(PChar('.\Rattlesnakerattle.wav'),hInstance,snd_ASync );
  end;
sonst wüsste ich leider nicht was ihr jetzt meint :(

DeddyH 27. Jun 2010 10:44

AW: Snake Spiel
 
Wie ich schon sagte: nimm das PlaySound aus dem OnCreate raus und pack es ins OnClick des Startbuttons.

Cueppi 27. Jun 2010 10:48

AW: Snake Spiel
 
bleib trotzdem so :(
ich hab es aus dem Oncreate in den OnBtnStart getan, jetzt spielt der das immer ab :(

DeddyH 27. Jun 2010 10:50

AW: Snake Spiel
 
:?: Häng doch mal die aktuelle *.pas an.

Cueppi 27. Jun 2010 10:53

AW: Snake Spiel
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier ;)

DeddyH 27. Jun 2010 10:57

AW: Snake Spiel
 
Bei mir wird der Sound nur einmal abgespielt, wenn ich den Button betätige, also wie gewollt.

haentschman 27. Jun 2010 11:04

AW: Snake Spiel
 
der Sound wird abgespielt beim Start und beim Beenden, weil du in der BtnBeendenClick BtnStart.Click aufrufst. Ich gehe davon aus, daß du damit wieder neu initialisieren möchtest. Lagere die Initialisierung in eine eigene Prozedure aus und rufe diese explizit auf. Dann ist auch der Sound aus dem Beenden weg.

PS: ich glaube, daß in der
Delphi-Quellcode:
procedure TForm1.BtnBeendenClick(Sender: TObject);
begin
  if (BtnStart.Enabled =false)
    then timer1.Enabled:=false
  else if (MessageBox(0,'Schon fertig gezockt ?!?! // Good Bye :-)' ,'Spielende' ,
  MB_YESNO + MB_ICONQUESTION )=IDYES)then close; BtnStart.click;
   if (BtnStart.Enabled =false)
    then timer1.Enabled:=false;
  IF (MessageBox(0, 'Wiederholen ??', 'Spielende', MB_YESNO + MB_ICONQUESTION )=IDNO)
then BtnStart.Click;
   if (BtnStart.Enabled =false)
    then timer1.Enabled:=false;
    //showMessage ('Schon fertig gezockt ?!?! // Good Bye :-)');
  if (BtnStart.Enabled =false)
  then timer1.Enabled:=false;
if (BtnStart.Enabled =true)
then close;
    BtnStart.Enabled:=true;
...ein paar begin / end fehlen oder zumindest durch die Formatierung nicht zu erkennen ist, wie der Ablauf wirklich sein soll.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.
Seite 1 von 5  1 23     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