Seite 2 von 3

Verfasst: 15.10.2006 21:06
von Killfrog
ist für nen spiel

ich will damit die koordinaten von dem spieler und die tasten die gedrückt sind verschicken

Verfasst: 16.10.2006 22:58
von mk-soft
Eine Structure erstellen, die Daten füllen, die Structure senden.
Auf beide seiten, server und client, die gleiche Structure.

Code: Alles auswählen

Structure udtDaten
  TimeStamp.l
  PosX.l
  PosY.l
  PosZ.l
  Text.s{20} ; Konstante länge. Text mit in der Structure
EndStructure

;...

Daten.udtDaten

;... 
len = SizeOf(udtDaten)

;...
Debug len
;SendNetworkData(ClientID, Daten, len)
FF :wink:

Verfasst: 17.10.2006 07:13
von #NULL
@mk-soft
geht das auch ohne @ vor 'Daten'?

Verfasst: 17.10.2006 13:28
von Killfrog
das ist ja interessant :o

gleich mal ausprobieren thx

EDIT: k ich scheine damit nochnet so ganz klar zu kommen /:->

also hier meine probleme:
was ist das "Daten.udtDaten"?
wie verändere ich die werte der struktur ohne ein element davon zu erschaffen?
wie lese ich die ganze struktur beim host aus? :freak:

Verfasst: 20.10.2006 00:26
von mk-soft
@#NULL

da Daten eine Strukture ist handelt es sich schon um ein Zeiger aud die Daten.
Daten und @Daten sind allso gleich.

@Killfrog

Schaue mal in der Hilfe nach Structure.

udtDaten ist der Aufbau der einzelnen Variablen die aneinandergehängt sind (udt User Data Type)

mit Daten.udtDaten wird dann erst der Speicherbereich Allokiert.

Zugriff der Variablen:

Daten\PosX = 1000
oder
x = Daten\Posx


P.S. Hatte in den letzten Tagen viel zu tun :|

Verfasst: 21.10.2006 01:31
von Killfrog
kann es sein dass der buffer nicht überschrieben wird sondern neu empfangendes einfach hintendran geschrieben wird?

zB sende ich einmal "test" dann nochmal und dann ist im buffer "testtest".

Verfasst: 21.10.2006 01:38
von tobe
hi Killfrog,

ja das hast du richtig erkannt ;)

Verfasst: 24.02.2007 03:39
von Killfrog
hatte das netzwerk basteln ja erstmal sein gelassen ,doch kahm mir gestern eine idee.

bevor ich die idee nun teste und damit rumprobier frage ich euch ob das überhaupt klappen kann also:

ich sende alle meine gebrauchten variablen zusammengehängt und in fester reihenfolge bei jeder sendung und bastle dass dann beim empfang mit dem mid() befehl wieder auseinander. auf die art spare ich mir das erkennen welche variable da angekommen ist.

also würde das klappen? :D

Verfasst: 24.02.2007 04:01
von Kaeru Gaman
möglich....

aber mit Mid()-geschichten wirst du arg langsam sein...

besser wäre es, wenn du gleich nen kompletten speicherbereich sendest,
wo deine Vars eben hintereinanderliegen.

z.b. mit nem array:
erstelle dir ein array GameData.l(50)
da hast du dann alle benötigten variablen drin.
per netz musst du dann nur noch das array von 200byte länge verschicken,
packst es am ziel direkt in den korrespondierenden speicher,
und musst nicht mehr lange rumwuseln um nen string zu zerlegen,
sondern greifst direkt auf die einzelnen felder zu.

wenn die der name zu abstrakt ist, um ihn im prog zu verwenden,
bastel dir vielleicht ne spezielle struct.

Code: Alles auswählen

Structure Daten
  Player1X.l
  Player1Y.l
  Player1Head.l
  Player1HP.l
  Player2X.l
  Player2Y.l
  Player2Head.l
  Player2HP.l
EndStructure

Define GameData.Daten
;virtuelle funktion, die die daten in die struktur lädt
GetBuffer(@GameData)
;beispiel, wie die daten angewandt werden könnten
DisplaySprite(Player1Sprite, GameData\Player1X, GameData\Player1Y) 

Verfasst: 26.02.2007 17:13
von Toshy
Ähem ;-)
Hallo erstmal.
Also ganz ehrlich, du solltest dir einfach mal die Hilfedatei ansehen und unter "Referens" mal auf "Network" klicken. Dort stehen nicht nur alle Netzwerkfunktionen, sondern auch zwei Beispielcodes mit denen man sofort einen Server zum empfangen erstellt und einen Clienten der die Daten senden. Erstmal anschauen, verstehen und dann ändern. :-)
Ein paar kleine Daten zu senden ist im Grunde ganz einfach.
Gruß
Toshy