![]() |
Memory - zweites bild wird nicht aufgedeckt
Hallo
mein programm friet ein bevor das bild aufgedeckt wird hab eine pause von 1 sek drin warum? ich mache die pause damit man das zweite bild sieht (in meinem fall ehr sehen sollte)
Delphi-Quellcode:
procedure TMemoryfeld.aufdeckenOnClick(Sender:TObject);
var BildNummer : integer; begin //Array (TImage) Bild = Bilder auf der Fläche (insgesamt 24) //Array (Integer) Bilder = Name des sich darunterbefindenden Bildes (bild 1.JPG - 12. JPG) //Bildernummer des angeklickten Bildes BildNummer := (Sender as TImage).Tag; //angeklicktes Bild aufdecken Bild[BildNummer].Picture.LoadFromFile(inttostr(bilder[BildNummer])+'.JPG'); bild[bildnummer].Enabled := false; //Anzahl umgedrehte Bilder turns := turns + 1; //turns_anz.caption := inttostr(turns); {ausgabe zum test} //Erstes Bild if turns = 1 then begin pic1_turned := BildNummer; //pic1.Caption := inttostr( Bildnummer ); {ausgabe zum test} end; //Zweites bild if turns = 2 then begin pic2_turned := BildNummer; //pic2.Caption := inttostr( Bildnummer ); {ausgabe zum test} sleep(1000); <<--- hier // bilder sind die gleichen if bilder[pic1_turned] = bilder[pic2_turned] then begin bild[pic1_turned].Visible := false; bild[pic2_turned].Visible := false; turns := 0; end; //bilder sind unterschiedlich if bilder[pic1_turned] <> bilder[pic2_turned] then begin bild[pic1_turned].Picture.LoadFromFile('back.JPG'); bild[pic1_turned].Enabled := true; bild[pic2_turned].Picture.LoadFromFile('back.JPG'); bild[pic2_turned].Enabled := true; turns := 0; end; end; end; |
Re: Memory - zweites bild wird nicht aufgedeckt
Hallo Stephanie,
weg mit dem Sleep() - die Pausensteuerung solltest du mit einem Timer außerhalb der OnClick-Routine machen. Und die Bilder solltest du nicht jedesmal von der Platte laden. Lade sie in einen TMemoryStream und hole sie dir auch von dort. Grüße vom marabu |
Re: Memory - zweites bild wird nicht aufgedeckt
wie würdest du das mit dem timer machen?
ich habe immer gedacht timer sind zum wiederholen nicht zum pausieren? |
Re: Memory - zweites bild wird nicht aufgedeckt
Zitat:
|
Re: Memory - zweites bild wird nicht aufgedeckt
Danke für deine hilfe
awa jetzt verschwindet immer das zweite bild egal was und das erst deckt sich nicht wieder zu. Die sache mit den bildern mache ich später... kann mir da mal einer helfen ich blicke das ned Turns wird bei game_new auf null gesetzt
Delphi-Quellcode:
procedure TMemoryfeld.aufdeckenOnClick(Sender:TObject);
var BildNummer : integer; begin //Array (TImage) Bild = Bilder auf der Fläche (insgesamt 24) //Array (Integer) Bilder = Name des sich darunterbefindenden Bildes (bild 1.JPG - 12. JPG) //Bildernummer des angeklickten Bildes BildNummer := (Sender as TImage).Tag; //angeklicktes Bild aufdecken Bild[BildNummer].Picture.LoadFromFile(inttostr(bilder[BildNummer])+'.JPG'); bild[bildnummer].Enabled := false; Timer1.Tag := BildNummer; Timer1.Enabled := true; end;
Delphi-Quellcode:
procedure TMemoryfeld.Timer1Timer(Sender: TObject);
Var BildNummer:integer; begin BildNummer := Timer1.Tag; //Anzahl umgedrehte Bilder turns := turns + 1; //Erstes Bild if turns = 1 then begin pic1_turned := BildNummer; end; //Zweites bild if turns = 2 then begin pic2_turned := BildNummer; // bilder sind die gleichen if bilder[pic1_turned] = bilder[pic2_turned] then begin bild[pic1_turned].Visible := false; bild[pic2_turned].Visible := false; turns := 0; timer1.Enabled := false; end; //bilder sind unterschiedlich if bilder[pic1_turned] <> bilder[pic2_turned] then begin bild[pic1_turned].Picture.LoadFromFile('back.JPG'); bild[pic1_turned].Enabled := true; bild[pic2_turned].Picture.LoadFromFile('back.JPG'); bild[pic2_turned].Enabled := true; turns := 0; timer1.Enabled := false; end; end; end; |
Re: Memory - zweites bild wird nicht aufgedeckt
ACHTUNG: keine Rechtsauskunft, sondern subjektive Einschaetzung!
Ich würde Dir raten Dein Spiel umzubenennen, da Du ansonsten sehr schnell sehr viel ärmer sein könntest. "Memory" ist eine eingetragene Marke der Ravensburger AG, welche ihre Rechte rücksichtslos durchsetzt. Die verbreitete Annahme, dass "Memory" ein Gattungsbegriff für derartige Spiele ist, ist falsch. ![]() |
Re: Memory - zweites bild wird nicht aufgedeckt
ok werde ich tun
und das ist ja nur zur übung.... |
Re: Memory - zweites bild wird nicht aufgedeckt
15.11.2005
Habe mit das alles mal zu herzen genommen hat jetzt einen neuen Namen Get Pairs hoffe das ist legal.... Aber wie schon gesagt das Programm habe ich ja nur zum Üben erstellt Nun zu meinem Problem zurück Kann mir vielleicht jemand helfen warum nach dem einfügen des Timers meine bilder machen was sie wollen? die erste quelltextform ohne den timer ging (siehe ganz oben) Was es machen sollte und auch tat Wenn zwei ungeleiche angedrückt werden sollen sie sich wieder umdrehen wenn zwei gleiche angedrückt werden visible gehen was es nun macht das zweite angeklickte bild visible gemacht und das erste nicht wieder zugedeckt egal ob gleich oder ungleich neue quelltext form siehe 14.11.2005, 14:03 Hoffe das mir jemand weiterhelfen kann Tigermoon |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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 by Thomas Breitkreuz