Autor |
Beitrag |
Struppi
      
Beiträge: 41
|
Verfasst: So 03.06.07 15:21
ich programmiere gerade an einem kleinen shooter und habe ein problem.
im groben geht es darum auf fliegende enten zu schießen.
die getroffenen enten werden per onclick auf visible := false gesetzt.
1. wie kann ich einen counter erstellen ??
2. wie kann ich einen dynamischen zähler erstellen, der durchs onclick auf die ente einfach immer eins dazu zählt ??
das problem ist ja, dass das ganze dynamisch sein soll, da die viecher in unterschiedlichen reihenfolgen abgeschossen werden können.
dadurch muss der zähler immer eins dazu zählen egal welche ente angeklickt wird...
bitte helft mir, ich hänge fest
|
|
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: So 03.06.07 15:33
Was ist der Unterschied zwischen #1 & #2?
Einfach nur eine globale Integer Variable erstellen und um 1 erhöhen, z.B. so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| var Zaehler: integer;
procedure TForm1.OnClick(Sender: TObject); begin Inc(Zaehler); end; |
Ach ja, die Variable sollte noch initialisiert werden, sprich am Anfang des Programms (OnCreate z.B.) auf 0 gesetzt werden.
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
Struppi 
      
Beiträge: 41
|
Verfasst: So 03.06.07 15:59
die variablke wird also immer um 1 erhöht ??
gut, dann gibts keinen unterschied zwischen 1 und 2
was genau meinst du mit OnCreate auf 0 setzen ??
da steh ich grad auffm schlauch ...
|
|
Nilan
      
Beiträge: 29
Win VistaSP1
|
Verfasst: So 03.06.07 16:22
Doppelklick auf dein Formular, dann kommt automatisch das OnCreate Ereignis deiner Form.
Da musst du nur noch folgenden Code reinschreiben:
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.FormCreate(Sender: TObject); begin Zaehler:=0; end; |
Das heißt, die Variable initialisieren, macht man das nicht, kann es zu Problemen kommen.
Aber vielleicht solltest du dir erstmal ein wenig Grundwissen verschaffen?
Nilan 
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: So 03.06.07 18:14
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: So 03.06.07 18:37
Die Probleme, die Nilan meint, treten nur bei lokalen Variablen auf, da globale automatisch auf 0 initialisiert werden.
Loale werden überhaupt nicht initialisiert, weswegen dann da irgendwas drinsteht.
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Struppi 
      
Beiträge: 41
|
Verfasst: So 03.06.07 21:58
ich hab das jetz alles so gemacht und es passiert einfach überhaupt nix ...
es kommt zwar keine fehlermeldung, aber im programm tut sich auch nix ...
und zu dem grundwissen:
da hast du wohl recht, aber ich mach das ganze für die schule und hatte vorher noch null delphi erfahrung ...
|
|
Dunkel
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: So 03.06.07 22:07
Was hast Du denn wie gemacht? Wenn Du einfach nur den Quellcode von hier via C&P in Dein Projekt eingefügt hast, dann tut sich da auch nix.
Zeig mal ein wenig Code von Dir!
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
Struppi 
      
Beiträge: 41
|
Verfasst: So 03.06.07 23:52
klar hab ich das per C & P eingefügt
das war ja meine frage, wie man genau sonen counter erstellt ...
ich hab kein plan von nix *sich schäm*
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Mo 04.06.07 08:40
Wollen mal nicht so sein, eigentlich hatte Dunkel das schon geschrieben.
Crashkurs mal anschauen
www.christian-stelzm...urs_reloaded.htmlvar
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Form1: TForm1; MyCount:Integer; implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Inc(MyCount); if MyCount > 10 then MyCount:=1; Caption:=IntToStr(MyCount);end; |
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 04.06.07 08:57
vielleicht solltest du allen enten das gleiche onclick-event hinzufügen...
evtl. so, z.B. bei oncreate
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.FormCreate(Sender: TObject); var i : integer; begin for i := 0 to self.ComponentCount -1 do begin if self.Components[i] is TEntenKomponente then begin with self.Components[i] as TEntenKomponente do begin onClick := MeinOnClickEvent; end; end; end; end; |
gruß
rd3
|
|