![]() |
Re: Dartspiel programmieren mit Delphi
Delphi-Quellcode:
Problem 1 : Progressbar1 geht schneller als Progressbar 2.
procedure TForm1.SchussClick(Sender: TObject);
begin Timer1.enabled:=true; Timer2.enabled:=true; end; procedure TForm1.SchussMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin timer1.enabled := true; timer2.enabled := true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin if progressbar1.Position=100 then progressbar1.step:=-8 else if progressbar1.Position=0 then progressbar1.step:=8; progressbar1.Stepit; end; procedure TForm1.SchussMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin timer1.enabled := false; progressbar1.position := 0; timer2.enabled := false; progressbar2.position := 0; {+code zum abwerfen} end; procedure TForm1.Timer2Timer(Sender: TObject); begin if progressbar2.Position=100 then progressbar2.step:=-8 else if progressbar1.Position=0 then progressbar2.step:=8; progressbar2.Stepit; end; Problem 2. wenn ich mouse los lasse (mouse up) bleiben die balken auf den progressbars nicht stehn, sondern verschwinden...warum? Problem 3: wie ermittle ich dann aus den Progressbalken"punkt" die koordinaten X,Y für meinen treffer auf der zielscheibe? Problem 4: wie genau muss ich denn das integer module einbringen? |
Re: Dartspiel programmieren mit Delphi
1. Guck mal im Objektinspektor bei den Timern nach, ob die Intervalle gleich sind :zwinker:
4. Am besten oben im Private-Abschnitt der Klasse TForm1 ;) |
Re: Dartspiel programmieren mit Delphi
Problem 1: gelöst :-D :lol:
Problem 2. wenn ich die mouse los lasse (mouse up) bleiben die balken auf den progressbars nicht stehn, sondern verschwinden...warum? Problem 3: wie ermittle ich dann aus den Progressbalken"punkt" die koordinaten X,Y für meinen treffer auf der zielscheibe? Problem 4: wie genau muss ich denn das integer module einbringen? ja im private teil, aber wie verwende ich es dann im implementation teil? sry, ich stell mich wirklich dumm an, aber ich bin "laie" und habe leider nicht soviel ahnung wie ihr. |
Re: Dartspiel programmieren mit Delphi
Zitat:
Zitat:
kannst du ja wieder rausnehmen. Zitat:
dann in dne timern die if's folgendermaßen abändern:
Delphi-Quellcode:
so, nun laufen die progressbars nicht bis hundert sondern bis zum jeweiligen rand des bildes. wenn der benutzer nun die maustaste loslässt (und du die zeile aus problem2 gelöscht hast), dann hast du in der einen bar den X-wert und in der anderen bar den Y-wert.
if progressbar1.position = progressbar1.max then
progressbar1.step:=-8 else if progressbar1.Position=0 then progressbar1.step:=8; progressbar1.Stepit; //genauso bei der zweiten bar (aber anstatt progressbar1 dann progressbar2 schreiben) Zitat:
Aenogym |
Re: Dartspiel programmieren mit Delphi
zu 4:
ich versteh deine Frage nicht ganz. Den Wert abfragen geht mit [oh]if, then, else[/oh]. Werte ändern geht mit dem := Operator. |
Re: Dartspiel programmieren mit Delphi
Zitat:
Wie genau schreibe ich das in mein Programm? |
Re: Dartspiel programmieren mit Delphi
:cry: :wiejetzt: :freak:
ich komm an dem punkt nicht weiter, wo diese progressbars einen Punkt (X,Y) erstellen sollen und auf dem Image (Dartscheibe) soll dieser Punkt eingezeichnet werden (zusätzlich dann noch pro DartscheibenRing eine Punktzahl zu ordnen) |
Re: Dartspiel programmieren mit Delphi
Wer lesen kann, ist klar im Vorteil.
Zum Punkte einzeichnen kannst du das so machen:
Delphi-Quellcode:
Die Punkte kannst du auch leicht errechnen. Rechne die Mitte des Image aus und speicher den Punkt irgendwo (Variable). Dann zählst du die Ringe und sagst deinem Programm dann, es soll in regelmäßigen Abständen einen Punkt mehr geben. Wenn du also 4 Ringe hast und von der Mitte sind es 20 Pixel nach unten, dann machst gibst du immer einen Punkt mehr, wenn der "Dartpfeil" 5 Pixel weiter unten ist.
image1.Canvas.Pixels[X,Y] := clRed;
//edit: Und bitte lass mal die ewigen Doppelposts sein, danke ;) |
Re: Dartspiel programmieren mit Delphi
Zitat:
MittelpunktX: 160; MittelpunktY: 160; So funzt das leider nicht ^^ Ich hab keine Ahnung wie ich das wo als Variable angeben soll... Und wie mache ich das dann mit den Punktezuordnungen? Ich hab dein Vorschlag gelesen, aber kann das nicht in einen Code umsetzen.
Delphi-Quellcode:
Äußerster Kreis : (30,30,290,290)
procedure TForm1.PunktzahlClick(Sender: TObject);
begin MittelpunktX+20:= "Es öffnet sich ein Pop-Up Window mit der Punktzahl" MittelpunktY+20:= " " end; innerster Kreis: (150,150,170,170) Insgesamt 7 Kreise, also pro Kreis erhöht sich der Y-Wert um 20 und der X-Wert auch um 20. Innerster Kreis soll auf 10 Punkte gesetzt sein... Wie schreibt man das dann? |
Re: Dartspiel programmieren mit Delphi
:wall:
Also irgendwo muss ein bischen nachdenken gefragt sein. In dem Private-Teil hast du keine Variablen geschrieben. Du wolltest es vielleicht, hast du aber nicht, da du keinen Variablentyp angegeben hast! Wenn du es so machst, nimm lieber constanten und deklarier die im Implementation-Abschnitt so:
Delphi-Quellcode:
Ich meinte da aber eigentlich innerhalb des Programms ausrechnen... aber egal.
const
MittelpunktX = 160; MittelpunktX = 160; Dein zweites Problem versteh ich nicht :wall: Was willst du da genau machen?! Der Code, den du da angebeben hast, ist nichtmal richtiger Code, bzw. es kommt nichtmal deutlich hervor, was du genau da anstellen willst. Ein "Popup-Fenster" kannst du mit ![]() Noch was: Und aus deinen Posts entnehme ich fast immer nur "wie schreib ich das als Delphi-Code?". Wenn wir dir Tipps geben, kommt meist etwas wie "ich hab versucht das zu machen, verstehe es aber nicht. Wie macht man das?" Also entweder versuchst du uns ernsthaft zu verarschen, oder du solltest mal dringend mit deinem Info Lehrer reden. Der hat euch ja scheinbar nichtmal gezeigt, wie man Variablen deklariert :roll: (ich hoffe mal schwer, dass ersteres nicht zutrifft.) Sorry, aber das musste mal raus. Wenn ihr in Info wirklich NICHTS gelernt haben solltet übers Programmieren, dann kannst du ja immerhin mal versuchen, dich darüber zu beschweren, dass ihr so schwere Aufgaben bekommt, obwohl ihr es nicht beigebracht bekommen habt, oder du kannst auch mal versuchen, dir andere Tutorials durchzulesen und erstmal überhaupt einen Einblick in Delphi zu bekommen. Weil es bringt dir ja auch nichts, wenn wir dir hier die Codes fertig liefern und du sie trotzdem nicht verstehst. Ich schlage dir dafür ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 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