Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 17.09.2002, 12:34 Titel: Schwerkraft |
|
|
Hi,
ich hab bei meinem Programm Schwerkraft eingebaut, also das Sprite wird, je länger es "in der Luft" ist, immer schneller nach unten bewegt. Wenn es auf dem Boden gelandet ist, soll eine Boolvariable auf true gesetzt werden. Dadurch kann es ja passieren, dass durch zu hohe Geschwindigkeit zu spät abgefragt wird, ob schon gestoppt werden soll und dadurch das Sprite zu tief im Boden steckt. Ich hab schon versucht, durch eine for-Schleife das ganze etwas genauer zu machen aber das hat nicht geklappt(wahrscheinlich wegen der zeitgenauen Bewegung)
Code: |
for(int i=0;i<gravity&&!Sprite.TestCollision(&Ground);i++)
{
Sprite.Move(0,0.1);
gravity++;
}
|
Also hab ichs mit einer while-Schleife probiert, die erst beendet wird, wenn das Sprite genau ausgerichtet ist, was auch gut funktioniert hat. Aber nur bis zu dem Zeitpunkt, als ich das ganze auch für die Gegner verwendet hab, worauf alles immer kurz stehengeblieben ist, wenn mehrere Sprites diese Schleife durchlaufen haben(is ja auch logisch).
Gibts da irgendeine einfache und performanceschonende Lösung? |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2002, 14:23 Titel: Antwort |
|
|
Dann musst du halt die Geschwindigkeit miteinrechnen...
Ich will das jetzt nicht ausfürhrlich machen...rechne einfach einen Schritt vor...
...das sag ich jetzt so, da du keien Beschreibung zu i hast und ich nicht weiß wie du die Geschwindigkeit berechnest... _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 17.09.2002, 14:58 Titel: |
|
|
Ich hab eigentlich gedacht dass es einfacher auch geht aber dann probier ichs halt mal so .Danke |
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 17.09.2002, 16:28 Titel: |
|
|
War doch nicht so umständlich wie ich gedacht hab!  |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 18.09.2002, 12:53 Titel: |
|
|
Kurze Frage: Warum veränderst du die Schwerkraft?
Und nochwas: Wenn der Spieler UNTER dem Boden ist, kannst du ihn doch manuell wieder auf die richtige Höhe bringen. Dazu brauchst du überhaupt keine Schleife. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 19.09.2002, 12:41 Titel: |
|
|
Da hab ich in meinem Beispiel anscheinend irgendwie Mist gemacht...
Ich hab für jedes Sprite eine Variable,gravity,um die das Sprite immer bewegt wird, also Sprite.Move(Sprite.gravity).
Und wenn ich das ganze Manuell mache dann wirds doch jedesmal gezeichnet, also auch wenn man im Boden ist. Wenns aber irgendwie eine gute Lösung gibt und ich anscheinend einfach nicht draufkomme, fänd ichs net wenn ich mal ein Beispiel bekommen würde  |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 19.09.2002, 13:07 Titel: |
|
|
Ich habe eine Schwerkraft-Variable die für ALLE Objekte gilt, die von der Schwerkraft beeinflusst werden sollen. Alle meine Objekte haben Position und Geschwindigkeit. Ich benutze die Schwerkraft einfach als Beschleunigung nach unten. Nachteil:Die Objekte verhalten sich wie in einem Vakuum. Wenn man es ganz realisitsch will, muss man den Objekten auch noch eine Masse geben. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
Hasenfuß Senior JLI'ler

Alter: 37 Anmeldedatum: 20.08.2002 Beiträge: 291
Medaillen: Keine
|
Verfasst am: 19.09.2002, 14:38 Titel: |
|
|
Achso du hast dann einfach eine konstante Geschwindigkeit. Aber wie machst du des mit dem auf-dem-Boden-aufkommen? |
|
Nach oben |
|
 |
Gast
|
Verfasst am: 19.09.2002, 14:42 Titel: |
|
|
Hazel hat Folgendes geschrieben: | Ich benutze die Schwerkraft einfach als Beschleunigung nach unten. Nachteil:Die Objekte verhalten sich wie in einem Vakuum. Wenn man es ganz realisitsch will, muss man den Objekten auch noch eine Masse geben. |
Die Beschleunigung ist von der Masse völlig unabhängig, da die
Gravitation direkt von der Masse abhängig ist. Daher fällt alles gleichschnell !!!!!!!
Das einzige was hemmend wirken kann ist der Luftwiderstand, der mit
steigender Geschwindigkeit die Beschleunigung hemmt.
Dietmar |
|
Nach oben |
|
 |
|