![]() |
Re: Frage zu LAN-Pong
Öh, sry aber was meinst du mit interpolieren genau? ^^
Dass ich die Werte wieder zurücksetze wenn sie vom Server abweichen? Also das Problem was ich eben bisher sehe ist, wenn auf dem Server die Position des Balls schon aktualisiert wurde, aber beim Client noch nicht, dann würde das Ergebnis ja total verfälscht... |
Re: Frage zu LAN-Pong
Wikipedia. Interpolieren bedeutet, dass du anhand von mehreren gegebenen Einzelwerten eine Funktion findet, die diese Werte möglichst gut "trifft".
Anschaulich gesagt: Wenn du bei t=0s den Wert 0 gegeben hast, bei t=1s den Wert 1 und bei t=2s den Wert 2, dann ist deine Interpolationsfunktion f(x)=x. Bei Pong wirst du zum Beispiel das "Problem" haben, dass dir der Server bei t=0s für den Schläger den y-Wert 32 liefert und für t=0.4s den y-Wert 42. In diesem Fall nimmst du einfach die Differenz der Zeit und die Differenz des y-Wertes und teilst deltaY durch deltaT, um die Werte dazwischen zu interpolieren. Die Funktion wäre hier f(x)=x*(42-32)/(0.4-0)=x*10/0.4=25x. Für t=0.1 ergibt sich also der Differenzwert 0.1*25=2.5. |
Re: Frage zu LAN-Pong
Hm, also in andere Worte gefasst, korrigiere ich den Wert beim Client später ein wenig???
Würde das denn nicht komisch aussehen? Dann würde ich ihn zB erst nach oben bewegen und hinterher wieder ein Stück zurück. Oder soll ich dazwischen nicht Zeichnen? Ich hab das dumpfe Gefühl wieder mal alles total falsch verstanden zu haben ^^ |
Re: Frage zu LAN-Pong
Ich würde das so machen:
Client sendet die aktuelle Position des "Schlägers", wenn er bewegt wurde. Server leitet das an den anderen Client weiter. Der Server berechnet die Position usw des Balls und sendet die Position dauernd an die Clients. Diese zeigen ihn dann nur noch an. Also auf den Clients wird der Ball nicht bewegt, nur angezeigt. Auch ob jemand einen Punkt gemacht hat sagt der Server. |
Re: Frage zu LAN-Pong
Nein. Du bekommst ja deine Werte immer nur in bestimmten Intervallen, dazwischen musst du eben berechnen, wie der Wert sein "könnte", weil die Bewegung sonst sehr stark ruckeln würde.
|
Re: Frage zu LAN-Pong
Zitat:
|
Re: Frage zu LAN-Pong
Die Größe der Daten ist bei den heutigen Bandbreiten beinahe egal (solange du es nicht übertreibst). Das eigentliche Nadelöhr ist die Latenzzeit.
Im LAN mag das ohne Interpolation funktionieren, aber im Internet, wo du Latenzzeiten von 100 ms einkalkulieren musst, macht sich sowas definitiv bemerkbar. |
Re: Frage zu LAN-Pong
Hm, das klingt logisch.....
Dh der Client müsste auch die Bewegung des Ball kennen...oder? Dann läuftss aber doch fast darauf hinaus, das alles gleichzeitig beim Client und beim Server abläuft....!? Also wenn ich den Ball auch beim Client bewege muss ich da ja auch auf ne Kollision achten und so... Edit: Könnte mir das evtl jemand etwas genauer erklären? Das wär sehr nett, weil ich da echt kein Plan hab wie ich das umsetzen soll. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz