Entwickler-Ecke
Open Source Projekte - Ballistische Kurve, Spiel
Fiete - Sa 02.10.10 16:39
Titel: Ballistische Kurve, Spiel
Der Spieler muß das Ziel, das durch einen Berg versperrt wird, treffen.
Nach dem Bau des Berges muß die Kanone initialisiert werden(Gegenwind und Achsenmaßstab) :wink:
Die Abschußgeschwindigkeit und der Abschußwinkel beeinflussen zusätzlich die ballistische Kurve.
Der Spieler hat 5 Versuche.
Gerechnet wird nach der Formel Y:=X*sin(W)/cos(W)-0.5*G*X*X/(V0*V0*cos(W)*cos(W))*(1+CW*X);
Viel Spaß beim spielen.
Gruß
Fiete
Edit1: neue Version liegt vor
Edit2: jetzt fliegt eine Kugel :wink:
Martok - Sa 02.10.10 18:44
Nett ;)
Noch etwas "grafischer" wäre schön.
Und ein Käfer: nach einer Meldung wenn man nicht getroffen hat, wird das Fenster nicht neu gezeichnet. Und während der Explosion wenn man trifft auch nicht, da kommt nur der Sound und irgendwann danach dann Meldung und "Linienexplosion"
Fiete - Mo 04.10.10 11:04
Moin Martok,
> Noch etwas "grafischer" wäre schön.
stimmt, leider bin ich kein guter Grafiker.
Im Quelltext sind zwei kleine Änderungen vorgenommen, die Dir wohl gefallen :beer:
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:
| if Getroffen then begin for KL:=1 to 50 do begin Pen.Color:=random(65535); MoveTo(XMitte,YMitte); LineTo(XMitte+(2*random(2)-1)*random(100),YMitte+(2*random(2)-1)*random(100)); end; SndPlaySound('Treffer.wav',SND_ASYNC); end; if ImBerg then MessageDlg('Du sollst den Berg NICHT durchlöchern!!!',mtError,[mbOk],0); if Getroffen or (Versuch=5) then begin if Getroffen then MessageDlg('Du hast das Ziel getroffen! Profi???',mtInformation,[mbOk],0) else MessageDlg('Du hast das Ziel NICHT getroffen!',mtError,[mbOk],0); FeuerKnopf.Visible:=False; EditV.Visible:=False; EditW.Visible:=False; AV.Visible:=False; VA.Visible:=False; StW.Visible:=False; Wind.Visible:=False; HF.Visible:=True; FarbeH.Visible:=True; LF.Visible:=True; FarbeL.Visible:=True; LabelGrad.Visible:=True; EditGrad.Visible:=True; BergBau.Visible:=True; BergZeichnen; end; |
Gruß
Fiete
FinnO - Fr 03.06.11 14:27
Vom Berg ist man noch immer beeindruckt ;)
Ferner: Wenn der Winkel 90 Grad beträgt, gibt es eine Gleitkommakatastrophe.
LG,
FinnO
Fiete - Sa 04.06.11 12:03
Moin FinnO,
die Gleitkommakatastrophe läßt sich verhindern, ändere den Quelltext
Delphi-Quelltext
1: 2:
| Winkel:=StrToFloat(EditW.Text); if Winkel>89 then Winkel:=89; |
Gruß Fiete
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!