AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Dartspiel programmieren mit Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Dartspiel programmieren mit Delphi

Ein Thema von egarF · begonnen am 20. Jan 2005 · letzter Beitrag vom 23. Jan 2005
Antwort Antwort
Seite 5 von 6   « Erste     345 6      
egarF

Registriert seit: 20. Jan 2005
Ort: Stuttgart
21 Beiträge
 
#41

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:20
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?
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#42

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:23
1. Guck mal im Objektinspektor bei den Timern nach, ob die Intervalle gleich sind

4. Am besten oben im Private-Abschnitt der Klasse TForm1
  Mit Zitat antworten Zitat
egarF

Registriert seit: 20. Jan 2005
Ort: Stuttgart
21 Beiträge
 
#43

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:26
Problem 1: gelöst

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.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#44

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:27
Zitat von egarF:
Problem 1 : Progressbar1 geht schneller als Progressbar 2.
überprüf mal, ob die Interval-Eigenschaft beider timer auch gleich ist

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 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 von egarF:
Problem 4: wie genau muss ich denn das integer module einbringen?
integer module?

Aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#45

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:29
zu 4:

ich versteh deine Frage nicht ganz. Den Wert abfragen geht mit [oh]if, then, else[/oh]. Werte ändern geht mit dem := Operator.
  Mit Zitat antworten Zitat
egarF

Registriert seit: 20. Jan 2005
Ort: Stuttgart
21 Beiträge
 
#46

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:37
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?
  Mit Zitat antworten Zitat
egarF

Registriert seit: 20. Jan 2005
Ort: Stuttgart
21 Beiträge
 
#47

Re: Dartspiel programmieren mit Delphi

  Alt 21. Jan 2005, 22:57


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)
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#48

Re: Dartspiel programmieren mit Delphi

  Alt 22. Jan 2005, 09:38
Wer lesen kann, ist klar im Vorteil.

Zum Punkte einzeichnen kannst du das so machen:

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
  Mit Zitat antworten Zitat
egarF

Registriert seit: 20. Jan 2005
Ort: Stuttgart
21 Beiträge
 
#49

Re: Dartspiel programmieren mit Delphi

  Alt 22. Jan 2005, 13:00
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?
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#50

Re: Dartspiel programmieren mit Delphi

  Alt 22. Jan 2005, 13:23



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
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
(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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 6   « Erste     345 6      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 Uhr.
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