Koordinaten oder Richtung und Geschwindigkeit über TCP??!!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

kugel1986

Betreff: Koordinaten oder Richtung und Geschwindigkeit über TCP??!!

BeitragDi, Jan 25, 2005 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich hätt mal eine Frage und zwar, ist es besser die Koordinaten über das Netz zu versenden oder Richtung und Geschwindigkeit? Es wäre cool, wenn ihr für die bessere Lösung eine kurze Erklärung schreibt.
Danke!!!!
MfG

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 11:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt drauf an Smile

Nein, ganz einfach, die Position+Drehung.
Weil du nciht weißt, wie gut die Übertragung ist und der Andere PC.
Stelle dir Vor, Autorennen, Ihr fahrt 210 KMH dann kurz for der Kurve fangt ihr an zu bremsen, PArtikel engine kommt, er hat nur noch 1 FPS.
Und Voila, bei dir hängt er in der Wand und bei sich, hat er die Kurve gerade noch so geschafft.

Ausserdem, Bei allen Action geladenen Sachen UDP nehmen.
between angels and insects
 

kugel1986

BeitragDi, Jan 25, 2005 12:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Wir haben schon einmal die Position(Koordinaten) gesendet, nur das Problem war, dass wir alles in einen string gepackt ham und dann durch das "-"- Zeichen Probleme hatten ihn auszuwerten, weil die Koordinaten immer an einer anderen Stelle stehen.

Wie sollte man es am besten verschicken, alles einzeln oder in einem string?

Bei uns ist das Problem, dass wir unter Zeitdruck stehen, weil es ein schulisches Projekt ist. Zu dem der Schlauch auch gehört.

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 12:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Per String

Du nimmst als 1. ein Steuer Bit, für deinen String, damit du weißt, was ankommt.
Dann machst du den integer in seine 4 Bytes und speicherst sie als AScii zeichen in dem String
das mit allen 3 Coordinaten und voila.
between angels and insects
 

Schlauch

BeitragDi, Jan 25, 2005 12:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Du nimmst als 1. ein Steuer Bit, für deinen String, damit du weißt, was ankommt.
Dann machst du den integer in seine 4 Bytes und speicherst sie als AScii zeichen in dem String
das mit allen 3 Coordinaten und voila.


=> So schnell hören wir uns wieder Smile

Also unser String sieht derzeit in etwa so aus:

"-1.025661.36666-5.62333"

wir ham das mal so auseinanderklamösert dass jetzt der selbe string so versand wird:

"-1.02566\1.36666\-5.62333"

dh es wird so getrennt: "x\y\z" am anfang steht dann noch von welchem player es kommt. Wie können wir das dann so auseinanderfuzzeln dass man damit etwas anfangen kann? Denn wenn wir die einzelnen Koordinaten separat versenden gibt das endlos Traffic.

thx
mfg
Schlauch
 

kugel1986

BeitragDi, Jan 25, 2005 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Da gibts aber doch dann das Problem, das er ganze Zahlen macht und keine genauen Werte übermittelt.
Kommt es dann nicht zum klassischen Netzwerk-ruckeln?
Und was ist dann mit den negativen Zahlen, weil das + wird ja nicht angezeigt und dann verschieben sich ja wieder die Stellen und man kann es wieder nicht auswerten, oder?

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
schuldigung, Ich meinte nicht Bit, sondern Byte.

hm, Netzwerk Ruckeln ist ein Gutes Stichwort.
ich weiß jetzt nciht wie Groß ihr eure Welt Habt.
--> wieviele Zahlen ihr nach dem Komma braucht.
nehme den Float * 10 Hoch stellen nach dem komma
Dann machst du es am besten noch mit mehreren schritten, sozusagen, das er nciht sofort an die neue Stelle Gesetzt wird, sondern erst einen Zwischenschritt macht und dann beim nächsten Frame dort steht und hoffen, das seine Neue Position schon im Eingang der Netzwerkkarte Liegt
Und, wenn du sowas versendest, wie: 10000/-123124/1233214
Dann Töte ich dich eigenhändig.
Ließ dir nochmal meine beschreibung durch,
bei mir kommt sowas herraus: sdhzv7:_,;_*'
das sind 3 Zahlen und das Steuerungs Byte
Ein Int hat 4 Bytes.
Diese nimmst du herraus und machst sie ins Ascii format.
-->
keine Trennzeichen,
schneller zugriff auf die Werte,
Schneller Übertragung.
Nur 13 Bytes zum versenden (3x4+Steuerbyte)
between angels and insects
 

kugel1986

BeitragDi, Jan 25, 2005 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wandelt man die Zahlen in ascii-code um?
oder macht er es automatisch, wenn man sie in den string schreibt??

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
in% =1567890123

   Out$=  Chr((In% And $FF000000) Shr 24)
   Out$=  Out$+Chr((In% And $FF0000) Shr 16)
   Out$=  Out$+Chr((In% And $FF00) Shr 8)
   Out$=  Out$+Chr(In% And $00FF)

RuntimeError out$
between angels and insects
 

kugel1986

BeitragDi, Jan 25, 2005 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur mal kurz zum verstaändnis:

was bedeutet des Shr und die Zahl??

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Bits nach REchts verschieben
between angels and insects
 

kugel1986

BeitragDi, Jan 25, 2005 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
und nochwas, wie bekomm ich des dann wieder zurück in zahlen??

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Function Int2ASC$(In%)
Local Out$
Out$= Chr((In% And $FF000000) Shr 24)
Out$= Out$+Chr((In% And $FF0000) Shr 16)
Out$= Out$+Chr((In% And $FF00) Shr 8)
Out$= Out$+Chr(In% And $00FF)
Return out$
End Function

For s= 0 To 200
Print Int2ASC$(Rand(0,2^32))
Next
between angels and insects
 

kugel1986

BeitragDi, Jan 25, 2005 16:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, so bekomm ich des in ASCII, aber ich mein ASC2INT

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Bist du sicher, das du das für die schule machen willst?
between angels and insects

Jan_

Ehemaliger Admin

BeitragDi, Jan 25, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Int2ASC$(In%)
Local Out$
Out$= Chr((In% And $FF000000) Shr 24)
Out$= Out$+Chr((In% And $FF0000) Shr 16)
Out$= Out$+Chr((In% And $FF00) Shr  8)
Out$= Out$+Chr(In% And $00FF)
Return out$
End Function

For s= 0 To 200
   g= Rand(0,2^32)
   Print g + " - "+ASC2INT%(Int2ASC$(g))
Next


Function ASC2INT%(In$)
Local Out%
Out% = Asc(Mid(In$,1,1))Shl 24
Out% = Out% + Asc(Mid(In$,2,1))Shl 16
Out% = Out% + Asc(Mid(In$,3,1))Shl 8
Out% = Out% + Asc(Mid(In$,4,1))
Return out%
End Function
between angels and insects
 

kugel1986

BeitragDi, Jan 25, 2005 17:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, jetzt hab ich angefangen un jetzt kann i halt nemme zurück Sad !!

Danke erstma, denk du wirst bald wieder von uns hören!!

Jan_

Ehemaliger Admin

BeitragMi, Jan 26, 2005 8:21
Antworten mit Zitat
Benutzer-Profile anzeigen
lol
Ne des globsch nett
de schrobt ehner wiers spricht.

Amüsante.
Jetzt wissen wir wehnichstens, aus welchen Sprach raum du bist.
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group