ich habe ein Problem.
Server:
Code: Alles auswählen
InitNetwork()
InitKeyboard()
InitSound()
InitSprite()
Structure Client
x.w
y.w
Id.w
State.w
EndStructure
Global NewList Client.Client()
If OpenWindow(0,0,0,410,310,"Tastatur Test",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0),5,5,320,300,0,0,0)
CreateSprite(0,20,20)
StartDrawing(SpriteOutput(0))
Box(0,0,20,20,#White)
StopDrawing()
EndIf
EndIf
Buffer = AllocateMemory(1000)
CreateNetworkServer(0,6666)
Repeat
FlipBuffers()
ExamineKeyboard()
ClearScreen(0)
FreeMemory(Buffer)
Buffer = AllocateMemory(1000)
Event.l = WindowEvent()
StartDrawing(ScreenOutput())
DrawingMode(1)
If Sent = 0
DrawText(100,100,"Nichts gedrückt",#White)
EndIf
If Sent = 2
DrawText(100,100,"Rechts gedrückt",#White)
EndIf
If Sent = 4
DrawText(100,100,"Links gedrückt",#White)
EndIf
DrawText(0,0,"PosX: "+Str(PosX),#White)
DrawText(0,20,"PosY: "+Str(PosY),#White)
StopDrawing()
;-Moving
Client = EventClient()
Server = NetworkServerEvent()
Select Server
Case 1
Start = 1
Case 2
ReceiveNetworkData(EventClient(),Buffer,1000)
Sent = PeekQ(Buffer)
Case 4
PosX = 0
PosY = 0
EndSelect
If Sent = 2
PosX + 2
EndIf
If Sent = 4
PosX - 2
EndIf
Until KeyboardPushed(#PB_Key_Escape) Or Event = #PB_Event_CloseWindow
Code: Alles auswählen
InitNetwork()
InitKeyboard()
InitSound()
InitSprite()
Structure Client
x.w
y.w
Id.w
State.w
EndStructure
Global NewList Client.Client()
If OpenWindow(0,0,0,410,310,"Tastatur Test",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0),5,5,320,300,0,0,0)
CreateSprite(0,20,20)
StartDrawing(SpriteOutput(0))
Box(0,0,20,20,#White)
StopDrawing()
EndIf
EndIf
Buffer = AllocateMemory(1000)
Server = OpenNetworkConnection("127.0.0.1",6666)
Repeat
FlipBuffers()
ExamineKeyboard()
ClearScreen(0)
FreeMemory(Buffer)
DisplaySprite(0,PosX,PosY)
Buffer = AllocateMemory(1000)
Event.l = WindowEvent()
Old = Sent
If KeyboardPushed(#PB_Key_Right)
Sent = 2
PokeQ(Buffer,Sent)
PosX + 2
EndIf
If KeyboardPushed(#PB_Key_Left)
Sent = 4
PokeQ(Buffer,Sent)
PosX - 2
EndIf
If KeyboardReleased(#PB_Key_All)
Sent = 0
PokeQ(Buffer,Sent)
EndIf
StartDrawing(ScreenOutput())
DrawingMode(1)
If Sent = 0
DrawText(100,100,"Nichts gedrückt",#White)
EndIf
If Sent = 2
DrawText(100,100,"Rechts gedrückt",#White)
EndIf
If Sent = 4
DrawText(100,100,"Links gedrückt",#White)
EndIf
DrawText(0,0,"Sent: "+Str(Sent),#White)
DrawText(0,20,"Old: "+Str(Old),#White)
StopDrawing()
Client = EventClient()
If Sent <> Old
SendNetworkData(Server,Buffer,1000)
EndIf
Until KeyboardPushed(#PB_Key_Escape) Or Event = #PB_Event_CloseWindow
Wie kann ich das besser machen, bzw. Synchronisieren?
lg Milchshake