SetGNetTarget?!?!
Übersicht

![]() |
FOODyBetreff: SetGNetTarget?!?! |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo.
Ich hab mal ne frage zum Befehl "SetGNetTarget". So wie ich es verstanden habe kann man damit eigene Objekte (mit eigenen Klassen) verschicken. Leider geht das irgendwie nicht. Hier ist der Quellcode: Code: [AUSKLAPPEN] '###################################################################################################
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ '|||||||||||||| NetBody '/////////////////////////////////////////////////////////////////////////////////////////////////// '--------------------------------------------------------------------------------------------------- Type PlayerNet Extends Body Field TmpX:Int,TmpY:Int,TmpAngle:Float,HeaderSend:Byte Field NetObject:TGnetObject '----------------------------------------------------------------------------------------------- '############# Objektmethoden '----------------------------------------------------------------------------------------------- Method InitNetPlayer() NetObject = CreateGNetObject(GNetHost) ListAddLast NetList,Self EndMethod Method Send() SetGNetTarget(NetObject,.Body(Self)) 'If(HeaderSend=False) SetGNetString(NetObject,0,Name) 'If(x<>TmpX) SetGNetInt(NetObject,1,x);TmpX = x 'If(y<>TmpY) SetGNetInt(NetObject,2,y);TmpY = y 'If(angle<>TmpAngle) SetGNetInt(NetObject,3,angle);TmpAngle = angle EndMethod '----------------------------------------------------------------------------------------------- '############# Verbindungsfunktionen '----------------------------------------------------------------------------------------------- Function Join:Byte(ip:String) If(GNetConnect(GnetHost,ip,PORT)) NetHost = False Return True Else Return False EndIf EndFunction Function Host() GNetListen(GnetHost,PORT) NetHost = True EndFunction Function NetUpdate() GNetSync(GnetHost) For Local netobj:PlayerNet=EachIn NetList netobj.Send() Next Local client:TGnetPeer If(NetHost) client = GNetAccept(GnetHost) If(client) Print "Joined..." EndIf For Local obj:TGnetObject=EachIn GNetObjects(GnetHost,GNET_ALL) Local B:Body = .Body(GetGNetTarget(obj)) If(B<>Player) Print SizeOf(GetGNetTarget(obj)) If(B) Local S:Body = .Body.GetByName(B.name) If(B<>Player) Then Print SizeOf(B) If Not S ListAddLast List,B Else S = B EndIf EndIf Next EndFunction '----------------------------------------------------------------------------------------------- '############# Variablen '----------------------------------------------------------------------------------------------- Global GNetHost:TGnetHost = CreateGNetHost() Global NetList:TList = CreateList() Global PORT:Int = 9200 Global NetHost:Byte = False EndType Freu mich schon auf eure hilfe. .:: FOODy |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das SetTarget Objekt wird nicht verschickt. Es wird nur lokal an das Objekt angehängt. Damit kannst du zb Sync Funktionalitäten einfacher machen und dir einfacher merken welches Netzwerk Objekt mit welcher lokalen Representation zusammen gehört. Mehr geht damit nicht. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group