Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Dartspiel programmieren mit Delphi (https://www.delphipraxis.net/38527-dartspiel-programmieren-mit-delphi.html)

egarF 21. Jan 2005 21:20

Re: Dartspiel programmieren mit Delphi
 
Delphi-Quellcode:
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 1 : Progressbar1 geht schneller als Progressbar 2.

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?

malo 21. Jan 2005 21:23

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 ;)

egarF 21. Jan 2005 21:26

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.

Aenogym 21. Jan 2005 21:27

Re: Dartspiel programmieren mit Delphi
 
Zitat:

Zitat von egarF
Problem 1 : Progressbar1 geht schneller als Progressbar 2.

überprüf mal, ob die Interval-Eigenschaft beider timer auch gleich ist

Zitat:

Zitat von egarF
Problem 2. wenn ich mouse los lasse (mouse up) bleiben die balken auf den progressbars nicht stehn, sondern verschwinden...warum?

das liegt an progressbar1.position := 0;
kannst du ja wieder rausnehmen.

Zitat:

Zitat von egarF
Problem 3: wie ermittle ich dann aus den Progressbalken"punkt" die koordinaten X,Y für meinen treffer auf der zielscheibe?

die eigenschaft MAX der progressbar auf den maximalwert einstellen (also die höhe des bildes, bzw. bei der anderen bar die briete des bildes).
dann in dne timern die if's folgendermaßen abändern:
Delphi-Quellcode:
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)
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.


Zitat:

Zitat von egarF
Problem 4: wie genau muss ich denn das integer module einbringen?

integer module?

Aenogym

malo 21. Jan 2005 21:29

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.

egarF 21. Jan 2005 21:37

Re: Dartspiel programmieren mit Delphi
 
Zitat:

Zitat von Aenogym

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.

Aenogym

Ja, das hatte ich soweit, doch nun soll ja auf meinem Image(Datrscheibe) ein Punkt erscheinen mit den Koordinaten X,Y ... diese koordinaten ergaben sich ja beim anhalten der progressbars... (progressbar1 für den Y Wert, progressbar2 für den x-wert)

Wie genau schreibe ich das in mein Programm?

egarF 21. Jan 2005 21:57

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)

malo 22. Jan 2005 08:38

Re: Dartspiel programmieren mit Delphi
 
Wer lesen kann, ist klar im Vorteil.

Zum Punkte einzeichnen kannst du das so machen:

Delphi-Quellcode:
image1.Canvas.Pixels[X,Y] := clRed;
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.

//edit: Und bitte lass mal die ewigen Doppelposts sein, danke ;)

egarF 22. Jan 2005 12:00

Re: Dartspiel programmieren mit Delphi
 
Zitat:

Zitat von malo
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.

private-Teil

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:
procedure TForm1.PunktzahlClick(Sender: TObject);
begin
        MittelpunktX+20:= "Es öffnet sich ein Pop-Up Window mit der Punktzahl"
        MittelpunktY+20:= " "
end;
Äußerster Kreis : (30,30,290,290)
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?

malo 22. Jan 2005 12:23

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:
const
  MittelpunktX = 160;
  MittelpunktX = 160;
Ich meinte da aber eigentlich innerhalb des Programms ausrechnen... aber egal.

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 Delphi-Referenz durchsuchenShowMessage öffnen.



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 www.dsdt.info vor, die haben einen wunderbaren Tutorial-Bereich und einen Grundlagen-Bereich ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:35 Uhr.
Seite 5 von 6   « Erste     345 6      

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