Autor |
Beitrag |
Syngel Kid
      
Beiträge: 61
Win XP
Delphi 2005
|
Verfasst: Mo 15.08.05 17:55
Hallo!
Ich möchte mal mit Delphi mein erstes Spiel proggen!
Ich habe da auch schon eine Idee; Es soll sich um eine eigene Version von "Cannon Hill" handeln. Cannon Hill ist Freeware und man findet es sich über Google. Es geht darum, dass sich bis zu 4 Bunker auf einer 2D Landschaft bekämpfen. Nach jeder Runde kriegt man Geld um neue Waffen zu kaufen - Je besser man war, desto mehr Geld kriegt man.
Davon möchte ich eine eigene Version basteln.
Mir fallen da auch schon einige Dinge ein, wie ich das am besten anstelle. Nur eines will mir nicht in den Kopf: Die physikalischen Gesetze. Z.b. wenn Säure an einen Berg geschossen wird, dass sie dann auch runterläuft. Oder schon nur, wie sich ein Schuss in der Luft verhält. Also der Bogen.
Noch schwieriger wird es wenn andere Objekte z.B. eine Rakete beeinflussen (In Cannon Hill den Magneten, der die Rakete vom Bunker abstösst).
Fazit: Wie baue ich am besten die Anziehungskraft und andere physikalischen Gesetze ein?
Besten Dank für Antworten!
MfG Syngel
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Mo 15.08.05 17:59
ich weiß jetzt nicht ob das das richtige forum dafür ist
im endeffekt musste dir halt nur alle formeln besorgen
für einen kanonenschuss nimmste am besten die parabelform
ax²+bx+c // a < 0
mit dem anfangswert und der geschwindigkeit kannste dann einen hochpunkt bestimmen und dann die parameter a,b,c ausrechnen und anschließend die kugel zeichnen
wenn du von dem urspung ausgehst fällt c dabei sogar raus
alles andere mussu halt selbst mal bei google in erfahrung bringen
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 15.08.05 18:12
Nun. Dazu solltest du ... Physik in der Oberstufe haben
Ansich ist es ganz leicht eine Flugbahn zu berechnen. AbschussEnergie, Gewicht des Projektils udn Winkel reichen. Du berechnest als erstes, welche horizontale Energie das Projektil hat:
Quelltext 1: 2: 3: 4: 5: 6: 7:
| __b__ | /| | / | a| /x |a |/ | /----- _____#____b |
Die # ist der Bunker. x ist der Abschusswinkel und die Energie (Als länge!). nun ist b die Horizontale Energie (als Länge). Berechnen kannst du nun a mit dem Cosinus:
cos(alpha)=b/x |*x
b=cos(alpha)*x
Diese horizontale Energie bestimmt nun die Bewegung deines Projektils in der Horizontalen achse. Die Geschwindigkeit bleibt (wenn du wind und Luftwiderstand komplett weglässt) immer konstant bis zum Aufprall.
Nun berechnest du noch a mit dem Sinus auf die gleiche art wie b. Dadurch erhälst du die Höhenenergie, die bestimmt, wie weit sich das Projektil nach oben bewegen kann.
Das ist schonmal ein Ansatz, aber wir haben Ferien und ich bin mir nicht sicher, in wie fern auf mein Wissen verlass ist. Viel Glück!
edit
Ach ja: Vergiss die Gravitation nicht ( ^^' ) Wenn die Kugel am höchsten Punkt angekommen ist, beschleunigt sie senkrecht mit 9,81 m/s² (Meter pro sekunde im Quadrat) nach unten. Das ist die Erdbeschleunigungskonstante (Zumindest der Druchschnitt)
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Phobeus
      
Beiträge: 1280
Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
|
Verfasst: Mo 15.08.05 19:58
Im Prinzip haben die anderen Recht. Das Physikbuch hilft gerade im 2D-Bereich definitiv bereits weiter. Allerdings würde ich keineswegs damit anfangen die Werte aus dem Buch zu übernehmen. Erzeuge Dir eine Klasse TWorld, die alle Objekt aufnimmt, die in deiner Welt vorkommen (Spieler, Schüsse). Die Klasse übernimmt auch die Bewegung der Geschosse und berechnet bei jedem "Tick" dessen Bewegung an Hand von Parametern. So drückt ein starker Wind das Geschoss in eine Richtung in horizontaler Lage, während die Gravitation langsam und unnachgiebig nach unten zieht. So kannst Du dann auch leicht Anpassungen vornehmen wie die Schlacht auf einer Welt mit geringer Schwerkraft aussieht oder halt mit sehr starken Wind, was mit wenig Anpassung eine Menge Spielspass garantieren wird. Auch wird die Problematik nicht mehr so komplex, wenn Du eine zentrale Klasse hast, die das Mangement für die Bewegungen übernimmt. Eine Rakete z.B. ist halt schnell und unterliegt daher zwar der Schwerkraft, aber nicht dem Wind. Der Physiker wird lachend am Boden liegen, der Spieler dankt es.
Was das mit dem "Abrallen" angeht, so wird es schwieriger. Alte Spiele in dieser Richtung wie ScorchedEarth haben es sehr simple gemacht. Dort wurde einfach jede Linie mit Pixeln gefüllt, bis die Farbe X von Boden kam, dann die nächste. Nach X Pixeln war der Vorgang abgeschlossen. Welche Technik man hier anwendet, hängt wohl vorwiegend davon ab, in welcher Form die Geländestrukturen gespeichert sind.
Dies nur nochmal als Ergänzung zu den anderen... bei der Physik werden die definitiv besser bescheid wissen als ich es jemals könnte 
_________________ "Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Di 16.08.05 10:38
WIESO um alles in der Welt hilft dir das Schulphysikbuch gerade in der 2D-Welt nicht weiter??? Gerade in der Schule beschränkt sich wegen der Vorstellungskraft und Veranschaulichung der Modelle alles auf den 2D-Raum!
Übrigens gibt es komplette Formeln für ballistische Kurven im Netz - sogar mit Windbeeinflussung. Ein bisschen von Physik und Mathematik sollte man dann allerdings schon verstehen!
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
noidic
      
Beiträge: 851
Win 2000 Win XP Vista
D7 Ent, SharpDevelop 2.2
|
Verfasst: Di 16.08.05 10:51
Da steht doch, dass es weiter hilft ???
_________________ Bravery calls my name in the sound of the wind in the night...
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Di 16.08.05 15:06
Phobeus hat folgendes geschrieben: | Das Physikbuch hilft gerade im 2D-Bereich definitiv bereits weiter. |
Hast dich wohl verlesen, was? x) Tjaja, so kommts.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Di 16.08.05 15:37
Ja ja, morgen ist erst der Termin beim Optiker.
Vernäht und zugeflixt! Asche auf mein Haupt!
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
Syngel Kid 
      
Beiträge: 61
Win XP
Delphi 2005
|
Verfasst: Mi 17.08.05 11:15
Welches Physikbuch?
Habe noch nicht Physik, komme jetzt in die 8. Klasse...
Ist das in Deutschland auch so?
Naja sind halt wir Schweizer 
|
|
OneOfTen
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 17.08.05 13:05
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 17.08.05 18:05
ähm ich hab die elfte in Dt hinter mir. Aber... Nun, wir HÄTTEN ihn behandelt, aber unser dämlicher Lehrer hats für nötig befunden, lieber aus dem Nähkästchen zu plaudern und als er dann gemerkt, hat, dass wir nich genug Zeit für den Stoff hatten, hat er gemein "jaaa wenn IIHR nur besser mitmachen würdet O_o" ...
Sorry wegen dem Offtopic... Aber ich glaube diese Physikalischen Gesetze findest du zwar auch im internet, aber dazu ist ordentlich Grundwissen nötig... Ich wikipedia mal kurz...
hier! de.wikipedia.org/wiki/Waagrechter_Wurf wenn du da durchblickst, dann bist du ein großes stück weiter! Musst dann nur noch den schrägen Wurf finden, kannst davon ausgehen, dass der Waagerechte wurf ein Spezialfall des schrägen Wurfes ist, => du kannst unter Umständen mit viel Grundwissen auf den Schrägen Wurf zurückschließen.
Vielleicht findest du hier ganz unten noch was.
http://de.wikipedia.org/wiki/Physik_für_die_Schule
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|