Udp 1gegen 1 ohne probleme aber mehrere spieler gehen nicht
Übersicht

![]() |
dimasterBetreff: Udp 1gegen 1 ohne probleme aber mehrere spieler gehen nicht |
![]() Antworten mit Zitat ![]() |
---|---|---|
hallo zusamme,
ich hab mir mal ein kleines spiel 1 gegen 1 übers internet mit udp geschrieben. Jetzt möchte ich aber dass mehrere spieler dem spiel beitreten können das hab ich so versucht: Code: [AUSKLAPPEN] name$ = ReadString(udp) x1 = ReadString(udp) y1 = ReadString(udp) x2 = ReadString(udp) y2 = ReadString(udp) frm1 = ReadString(udp) frm2 = ReadString(udp) drawimage char,x1,y1,frm1 drawimage char1,x2,y2,frm2 dat geht aber net also es geht schon aber die spieler flimmern dann immer. wie mach ich das sonst? gruss dimaster |
||
![]() |
IronstormErstklassiger Contest-Veranstalter |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie wärs mit mehr Code? Ich kann dazu nichts sagen, ausser das UDP vielleicht zu langsam ist. Benutz doch TCP oder so! | ||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Blitzmaker hat Folgendes geschrieben: Ich kann dazu nichts sagen, ausser das UDP vielleicht zu langsam ist. Benutz doch TCP oder so!
na... da verwechselt du aber was. UDP is schneller, nicht umgekehrt!! |
||
Fragt und man wird euch helfen
Das Alternativ BlitzBasic-Forum: FreeCoder Einfach chatten: BlitzChat Code&Text schnell und einfach pasten: FreePasting |
- Zuletzt bearbeitet von noir am So, März 06, 2005 12:25, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du brauchst etwas was die messagequeue in eine anweisungsqueue umwandelt und dass dann in einem anderen schritt visualisiert.
da aber nicht immer neue meldungen da sind, musst du in der zwischenzeit versuchen zu schätzen was aufgrund der aktuellen bewegung, geschwindigkeit etc passiert und gegebenenfalls korrigieren ... dein jetziges funktioniert auch für 2 spieler nur im netzwerk und nicht wirklich im internet. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 640,480,16,2 SetBuffer BackBuffer() start = LoadImage("start.jpg") host = LoadImage("host.jpg") host1 = LoadImage("start1.jpg") join = LoadImage("join.jpg") join1 = LoadImage("join1.jpg") ende = LoadImage("ende.jpg") ende1 = LoadImage("ende1.jpg") maus = LoadImage("maus.bmp") Repeat Cls DrawImage start,0,0 DrawImage host,140,120 DrawImage join,140,220 DrawImage ende,140,320 DrawImage maus,MouseX(),MouseY() If ImagesCollide(maus,MouseX(),MouseY(),0,ende,140,320,0) Then DrawImage ende1,140,320 DrawImage maus,MouseX(),MouseY() If MouseHit(1) Then End EndIf EndIf If ImagesCollide(maus,MouseX(),MouseY(),0,join,140,220,0) Then DrawImage join1,140,220 DrawImage maus,MouseX(),MouseY() If MouseHit(1) Then weiter = 1 EndIf EndIf If ImagesCollide(maus,MouseX(),MouseY(),0,host,140,120,0) Then DrawImage host1,140,120 DrawImage maus,MouseX(),MouseY() If MouseHit(1) Then ExecFile("Server.exe") EndIf EndIf If KeyHit(1) Then End Flip Until weiter = 1 Graphics 640,480,0,2 name$ = Input("Bitte wähle deinen Namen: ") ;speichern des Clients Type client Field name$ End Type SeedRnd(MilliSecs()) server_ip$ = "192.168.123.112" server_port = 12890 client_name$ = name$ udp = CreateUDPStream() If Not udp Then Print "Der UDP Stream konnte nicht erstellt werden." End EndIf WriteByte(udp,2) sind. WriteString(udp,client_name$) SendUDPMsg udp,INT_IP(server_ip$),server_port ;tiles tileset = LoadAnimImage("tileset.bmp",32,32,0,31) ;char1 char = LoadAnimImage("char.bmp",32,32,0,4) char1 = LoadAnimImage("char1.bmp",32,32,0,4) px = 10 py = 7 move = 1 Dim map(100,100) load() frm = 0 Repeat SetBuffer BackBuffer() Cls If KeyDown(1) Then End For y = 0 To 100 For x = 0 To 100 DrawBlock tileset,x*32-scrollx,y*32-scrolly,map(x,y) Next Next If KeyDown(208) Then frm = 2 If map(px,py+1) < 14 Then py = py + 1 scrolly = scrolly + 32 move = 1 End If End If If KeyDown(200) Then frm = 0 If map(px,py-1) < 14 Then py = py - 1 scrolly = scrolly - 32 move = 1 End If End If If KeyDown(203) Then frm = 3 If map(px-1,py) < 14 Then px = px - 1 scrollx = scrollx - 32 move = 1 End If End If If KeyDown(205) Then frm = 1 If map(px+1,py) < 14 Then px = px + 1 scrollx = scrollx + 32 move = 1 End If End If If move = 1 Then x = px * 32: y = py * 32:DrawImage char,x-scrollx,y-scrolly,frm:Delay 10 If RecvUDPMsg(udp) <> 0 message = ReadByte(udp) Select message Case 1 name$ = ReadString(udp) px1 = ReadString(udp) py1 = ReadString(udp) frm1 = ReadString(udp) px2 = ReadString(udp) py2 = ReadString(udp) frm2 = ReadString(udp) Case 2 name$ = ReadString(udp) c.client = New client c\name$ = name$ Print name$ + " ist dem Chat beigetreten." Case 3 name$ = ReadString(udp) For c.client = Each client If c\name$ = name$ Then Delete c Next ;Nachricht ausgeben Print name$ + " hat den Chat verlassen." End Select EndIf If px Or py <> 0 Print client_name$ + ": " + inp$ WriteByte(udp,1) Chatmessage handelt WriteString(udp,client_name$) WriteString(udp,px) WriteString(udp,py) WriteString(udp,frm) SendUDPMsg udp,INT_IP(server_ip$),server_port senden EndIf DrawImage char1,px1*32-scrollx,py1*32-scrolly,frm1 Flip Forever WriteByte(udp,3) WriteString(udp,client_name$) SendUDPMsg udp,INT_IP(server_ip$),server_port CloseUDPStream(udp) End Function load() karte$ = ReadFile("map1.map") For x = 0 To 100 For y = 0 To 100 tile = ReadLine(karte$) map(x,y) = ReadInt(karte$) Next Next CloseFile(karte$) End Function ;Funktion zum Umwandeln von String IPs in Integer. 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 also das wär so mal der code am anfang ich weiss nicht wiso gruss dimaster |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group