AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu LAN-Pong

Ein Thema von .chicken · begonnen am 13. Mai 2007 · letzter Beitrag vom 14. Mai 2007
Antwort Antwort
Seite 2 von 2     12   
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#11

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 21:26
Ö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...
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 21:31
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#13

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 21:38
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 ^^
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#14

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 21:42
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.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 21:44
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#16

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 21:49
Zitat von 3_of_8:
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.
Ich habe auf diese Art ein kleines Rennspiel programmiert. Da hat nichts geruckelt. Man muss natürlich aufpassen, dass die Daten, die man sendet nicht zu groß sind, wie: "Setze Ball auf Position 100,100" sondern "S100100".
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Frage zu LAN-Pong

  Alt 13. Mai 2007, 22:35
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
.chicken

Registriert seit: 5. Dez 2006
459 Beiträge
 
#18

Re: Frage zu LAN-Pong

  Alt 14. Mai 2007, 09:26
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz