JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Schwerkraft

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Hasenfuß
Senior JLI'ler


Alter: 36
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 17.09.2002, 13:34    Titel: Schwerkraft Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2002, 15:23    Titel: Antwort Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 36
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 17.09.2002, 15:58    Titel: Antworten mit Zitat

Ich hab eigentlich gedacht dass es einfacher auch geht aber dann probier ichs halt mal so Smile .Danke
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hasenfuß
Senior JLI'ler


Alter: 36
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 17.09.2002, 17:28    Titel: Antworten mit Zitat

War doch nicht so umständlich wie ich gedacht hab! Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 18.09.2002, 13:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 36
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 19.09.2002, 13:41    Titel: Antworten mit Zitat

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 Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 19.09.2002, 14:07    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Hasenfuß
Senior JLI'ler


Alter: 36
Anmeldedatum: 20.08.2002
Beiträge: 291

Medaillen: Keine

BeitragVerfasst am: 19.09.2002, 15:38    Titel: Antworten mit Zitat

Achso du hast dann einfach eine konstante Geschwindigkeit. Aber wie machst du des mit dem auf-dem-Boden-aufkommen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Gast









BeitragVerfasst am: 19.09.2002, 15:42    Titel: Antworten mit Zitat

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 !!!!!!! Wink
Das einzige was hemmend wirken kann ist der Luftwiderstand, der mit
steigender Geschwindigkeit die Beschleunigung hemmt.

Dietmar
Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum