Entwickler-Ecke
Multimedia / Grafik - Game schließt sich
Aria - Mi 14.09.05 17:03
Titel: Game schließt sich
Hi,
ich habe mit Delphi für die Schule ein Moorhuhn fake Progemmiert, doch es hapert noch etwas!
Ich habe Image 2 und Image3, die durch den Bildschirm fliegen, diese muss man wegklicken, ansonsten schließt sich das game, aber wenn ich sie wegklicke, schließt es sich trotzdem, als ob das Bild einfach weiterlaufen würde!
Wie kann ich das beheben?
Die Antwort muss heute noch kommen, da ich es morgen abgeben muss (15.9) also BITTE helft mir!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls;
type TForm1 = class(TForm) Image1: TImage; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Timer1: TTimer; Image2: TImage; Image3: TImage; Timer2: TTimer; Label4: TLabel; Timer3: TTimer; procedure Image1Click(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Image2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1; Punkte: Integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin label1.Visible:=false; label2.Visible:=false; label3.Visible:=false; image2.Visible:=true; timer1.enabled:=true; image3.Visible:=true; timer2.enabled:=true; timer3.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject); begin image2.Top:=image2.Top+10; image2.Left:=image2.left+10; if image2.left> 869 then form1.close; end;
procedure TForm1.Image2Click(Sender: TObject); begin image2.Visible:=false;
end;
procedure TForm1.Timer2Timer(Sender: TObject); begin image3.Top:=image3.Top+23; image3.Left:=image3.left+20; if image2.left> 869 then form1.close; if image2.top> 600 then form1.close; end;
procedure TForm1.Image3Click(Sender: TObject); begin image3.Visible:=false; end;
procedure TForm1.Timer3Timer(Sender: TObject); begin Punkte:=Punkte-1; Label1.caption:=inTtostr (Punkte); end;
procedure TForm1.Image1Click(Sender: TObject); begin
end;
end. |
Amateur - Mi 14.09.05 17:10
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| if image2.left> 869 then form1.close; if image2.top> 600 then form1.close; |
da könnte es probleme geben. einfach ma alle close befehle rausnehmen (natürlich die komplette if schleifein diesem fall). hast denselben code auch im timer1. alles was mit close zu tun hat raus. wenns dann startet haste irgendwas falsch geproggt. ansonsten liegt der fehler tiefer im programmcode
edit: habs ma getestet. also mit dem code den du gepostet hast funzt es also muss es wo anders dran liegen. poste ma den rest des codes
Aria - Mi 14.09.05 17:23
Ich habe das problem gefunden, es war wie du sagtest ein falsch eingegebener Code bei den close codes!
Nun noch eine frage:
Bei mir wird die Zeit gezählt, indem ein angeschaltetter Timer die Zeit voranlaufen lässt.
Ich möchte nun, dass wenn die Zeit bei 10 ist, dass dann das Fenster geschlossen wird, kann mir einer sagen wie das geht?
Danke nochmal für die antwort zur ersten frage!
Jonas1405 - Mi 14.09.05 17:29
Aria hat folgendes geschrieben: |
Ich habe das problem gefunden, es war wie du sagtest ein falsch eingegebener Code bei den close codes!
Nun noch eine frage:
Bei mir wird die Zeit gezählt, indem ein angeschaltetter Timer die Zeit voranlaufen lässt.
Ich möchte nun, dass wenn die Zeit bei 10 ist, dass dann das Fenster geschlossen wird, kann mir einer sagen wie das geht?
Danke nochmal für die antwort zur ersten frage! |
Ich weiß gerade nicht wasfür ein Interval du für den Timer eingegeben hast- aber eigentlich kannst du doch eine Variable nehmen und diehochzählen und ggf. so umrechnen, dass du einen sekundenwert hast- oder??!!
Jonas
Aria - Mi 14.09.05 17:35
Das verstehe ich nciht ganz!
Kannst du mir mal deinen vorschlag in codes sozusagen geben?
Dann kann ich es mal ausprobieren, wäre sehr nett!
Aria - Mi 14.09.05 17:45
Aber nun bitte zurück zum eigentlichen Thema
Amateur - Mi 14.09.05 18:14
ups natürlich if abfrage. sry. hab halt schnell ne antwort getippt und net drauf geachtet
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!