Erster Multiplayer-Versuch - WTF?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

The_Nici

Betreff: Erster Multiplayer-Versuch - WTF?

BeitragSo, Jul 08, 2007 10:04
Antworten mit Zitat
Benutzer-Profile anzeigen
So, in diesem folgenden Code muss entweder ein Fehler stecken oder alles ist ein Fehler.
Wenn ich ihn ohne Multiplayerzeuchs starte seh ich auch nur schwarz... 0o
Code: [AUSKLAPPEN]
Graphics3D 800,600,32,2
SetBuffer BackBuffer()
Type Player
   Field mesh
   Field X#
   Field Y#
   Field Z#
End Type

pc.player=New Player
pc\mesh=CreateSphere(20)
   PositionEntity pc\mesh, 0,0,10
   ScaleEntity pc\mesh, 1,1,1
pc\X#=EntityX(pc\mesh)
pc\Y#=EntityY(pc\mesh)
pc\Z#=EntityZ(pc\mesh)

stream=CreateUDPStream()
SuperIP$=Input("Ip des anderen Spielers eingeben: ")
INT_IP(SuperIP$)
WriteByte(stream,1)
SendUDPMsg(stream, SuperIP$)


Repeat
   Text 0,0, "Warten auf Spieler"
   Flip
   Delay 100
   Cls
   Text 0,0, "Warten auf Spieler."
   Flip
   Delay 100
   Cls
   Text 0,0, "Warten auf Spieler.."
   Flip
   Delay 100
   Cls
   Text 0,0, "Warten auf Spieler..."
   Flip
   Delay 100
   hello=ReadByte (stream)
   If KeyHit(1) Then CloseUDPStream(stream):End
Until hello <> 0
Cls
Text 0,0, "Taste drücken"
WaitKey()

camera=CreateCamera(pc\mesh)
   PositionEntity Camera, 0,0,0

licht=CreateLight()
   RotateEntity licht, 45,0,0

player2=CreateSphere(20)
   PositionEntity player2, 0,0,10
   ScaleEntity player2, 1,1,1

terrain=CreatePlane()
   ScaleEntity terrain, 100,1,100

While Not KeyHit(1)
      x#=0
      y#=0
      z#=0
   If KeyDown(203)=1 Then x#=-0.1
   If KeyDown(205)=1 Then x#=0.1
   If KeyDown(208)=1 Then z#=-0.1
   If KeyDown(200)=1 Then z#=0.1
   WriteLine(stream,pc\X#)
   SendUDPMsg(stream, SuperIP$)
   x2#=RecvUDPMsg(stream)
   WriteLine(stream,pc\Y#)
   SendUDPMsg(stream, SuperIP$)
   y2#=RecvUDPMsg(stream)
   WriteLine(stream,pc\Z#)
   SendUDPMsg(stream, SuperIP$)
   z2#=RecvUDPMsg(stream)
   
   MoveEntity pc\mesh,x#,0,z#
   PositionEntity player2, x2#,y2#,z2#
   PointEntity camera, pc\mesh
   UpdateWorld
   RenderWorld
   Text 0,0, "Esc=Beenden"
   Flip
Wend
CloseUDPStream(stream)
End







Function INT_IP(IP$)
   a1=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
   a2=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
   a3=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
   a4=Int(IP$)
   Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4
End Function


Kann mir jemand helfen?

Lunatix

BeitragSo, Jul 08, 2007 10:42
Antworten mit Zitat
Benutzer-Profile anzeigen
http://blitzbase.de/befehle2d/sendudpmsg.htm

Zitat:
Port = Ziel-Port (optional). Wenn nichts angegeben wird, dann wird automatisch die Port-Nummer benutzt die mit CREATEUDPSTREAM definiert wurde.


Du hast den Port vergessen...
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

The_Nici

BeitragSo, Jul 08, 2007 10:46
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm...stimmt.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group