Position-Daten werden nicht gesendet
Übersicht

AMDBetreff: Position-Daten werden nicht gesendet |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
ich mach mich gerade an ein 2D-Lan-Game und hab auch mega-vieles versucht aber ich bekomms einfach ned hin, die Position-Daten werden einfach ned an die anderen gesendet. danke jetzt schon mal!!! MfG |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
mehr infos!!!
Benutzt du TCP/UDP/DirectPlay? Bist du dir unschlüssig/suchst einen Rat? Dann wie speicherst du die Spieler-Koords? Types, Arrays, Banks? Dann kann man dir helfen^^ |
||
AMD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
ich benutze directplay. und ja ich bin mir auch etwas unschlüssig (ist meine erste PC zu PC verbindung) und meine Daten speicher ich in Types und hier mal den code (den hab ich schon mal gepostet aber weil mir keiner antwortete wieder entpostet^^) ich hab die stelle im code markiert und sorry wenn jetzt i-wie gewurschtel im code sein sollte aber ich hab echt alles mögliche probiert ![]() Code: [AUSKLAPPEN] Global maptile
Global Player Global Spieler_posx=200 Global Spieler_posy=320 Global Spieler_Tempy#=0 Global jump Global jumptimer Global Spieler_counter=8 Global Spieler_frame=0 Global Schuss Global fpsrate, loops, fpstime Type shoot Field shoot_x Field shoot_y Field shoot_links Field shoot_rechts End Type Type PlayerOnline Field Spieler_x Field Spieler_y Field name$, net_id End Type AppTitle "Jump&Run" If Not StartNetGame() Then End Graphics 640,480,32,2 Repeat name$=Input$("Name: ") Until name$<>"" PlayerOnline.PlayerOnline = New PlayerOnline PlayerOnline\name=name$ PlayerOnline\net_id=Createnetplayer( name$ ) frametimer = CreateTimer(30) SetBuffer BackBuffer() ClsColor 0,0,255 maptile=Loadimage("tile2.bmp") MaskImage maptile,255,0,255 Dim map(20,15) Player=Loadanimimage("hero.bmp",32,32,0,8) MaskImage Player,255,0,255 Schuss=Loadimage("Schuss.png") Restore mapdata For y=0 To 14 For x=0 To 19 Read map(x,y) Next Next ;Hauptschleife Repeat Cls WaitTimer (frametimer) Update_network() Drawmap() Spieler() Createschuss() Send_PlayerInfo(send) Color 255,0,0 Text 10,0,"FPS: "+fps() Color 255,255,255 Text Spieler_posx-8,Spieler_posy-15,""+name$,0,1 Text 10,20,""+Send_PlayerInfo(send) Flip 0 Until KeyHit(1) End Function Drawmap() For y=0 To 14 For x=0 To 19 If map(x,y)=1 Then DrawImage maptile,x*32,y*32 End If Next Next End Function Function Spieler() If KeyDown(200) Send_PlayerInfo(send) If jump=0 Then jump=1 Spieler_tempy=10 End if End If If map((Spieler_posx +16) /32,Spieler_posy /32)=1 And jump = 1 Then jump=0 Spieler_posy=Spieler_posy+1 End If ;----Sprungfunktion If jump = 1 Then Spieler_tempy = Spieler_tempy -0.33 ;Die Temporäre Variable verringern Spieler_posy = Spieler_posy - Spieler_tempy ; Position Y durch TempY veringern ; Solange Temp_y eine positive Zahl ist, bewegt sich unsere Figur hoch, ; andernfalls runter. If Spieler_tempy =< 0 Then ; Sobald Temp_y den Wert 0 erreicht hat If map((Spieler_posx +16) /32,(Spieler_posy +32) /32)=1 Then ;überprüft, ob sich ein Tile unter dem Spieler befindet jump = 0 temp = Spieler_posy /32 ;\ Spieler_posy = temp *32 ;/ Setzt die genaue Y-Position, falls die Figur mitten im Tile steht EndIf EndIf EndIf ;Gravity If jump = 0 Then If map((Spieler_posx +16) /32,(Spieler_posy +32) /32)=0 Then ; Sollte kein Tile unter dem Spieler sein jump = 1 ; Sprungfunktion weiter ausführen Spieler_tempy = 0 ; Temp_y = 0, weil diese einen negativen Wert berechnen soll EndIf EndIf ;sorgt dafür, das die Figur nicht aus den Himmel schießt If Spieler_posy =< 0 Then Spieler_posy = 1 jump = 1 Spieler_Tempy = 0 EndIf If Spieler_posy => 448 Then Spieler_posy = 447 jump = 0 EndIf ;-----Ende Sprungfunktiont If KeyDown(203) Send_PlayerInfo(send) If Spieler_Frame <4 Then Spieler_Frame = 4 Spieler_Counter = Spieler_Counter -1 If Spieler_Counter = 0 Then Spieler_Counter = 8 Spieler_Frame = Spieler_Frame +1 If Spieler_Frame = 8 Then Spieler_Frame = 4 EndIf If map(Spieler_posx /32,(Spieler_posy +16) /32)=0 Then Spieler_posx=Spieler_posx-4 If Spieler_posx =< 0 Then Spieler_posx = 1 End If End If If KeyDown(205) Send_PlayerInfo(send) If Spieler_Frame >3 Then Spieler_Frame = 0 Spieler_Counter = Spieler_Counter -1 If Spieler_Counter = 0 Then Spieler_Counter = 8 Spieler_Frame = Spieler_Frame +1 If Spieler_Frame = 4 Then Spieler_Frame = 0 EndIf If map((Spieler_posx +32) /32,(Spieler_posy +16) /32)=0 Then Spieler_posx=Spieler_posx+4 If Spieler_posx => 608 Then Spieler_posx = 607 End If End If If KeyDown(208) If Spieler_Frame<4 Spieler_Frame=9 End If End if If KeyDown(208) If Spieler_Frame=<7 Spieler_Frame=8 End If End if If Spieler_posx=600 Then Spieler_posx=600 If Spieler_posx=2 Then Spieler_posx=2 DrawImage Player,Spieler_posx,Spieler_posy,Spieler_frame End Function Function Createschuss() If KeyDown(57) p.shoot=New shoot p\shoot_x = Spieler_posx+12 p\shoot_y = Spieler_posy+13.7 p\shoot_links = Spieler_posx p\shoot_rechts = Spieler_posx End If For p.shoot=Each shoot If Spieler_frame<4 p\shoot_rechts=p\shoot_rechts+12 Else p\shoot_links=p\shoot_links-12 End if DrawImage schuss,p\shoot_x,p\shoot_y DrawImage schuss,p\shoot_links,p\shoot_y DrawImage schuss,p\shoot_rechts,p\shoot_y Next End Function ;------------des zeugs mit für LAN-------------------------------------------------------------------- Function Update_network() While RecvNetMsg() Select NetMsgType() Case 100: PlayerOnline.PlayerOnline = New PlayerOnline PlayerOnline\net_id=NetMsgFrom() PlayerOnline\name=NetPlayerName$( NetMsgFrom() ) Text 10,30,""+PlayerOnline\name+" has joined the game." Case 101: PlayerOnline.PlayerOnline = PlayerOnline( NetMsgFrom() ) If PlayerOnline<>Null Text 10,40,PlayerOnline\name+" has left the game. " Delete PlayerOnline EndIf End Select Wend End Function Function Send_PlayerInfo(send) While RecvNetMsg() For PlayerOnline.PlayerOnline = Each PlayerOnline If NetPlayerLocal( PlayerOnline\net_id ) PlayerOnline\Spieler_x$=Spieler_posx PlayerOnline\Spieler_y$=Spieler_posy SendNetMsg Rnd(1,99),PlayerOnline\Spieler_x$,PlayerOnline\net_id,0,1 SendNetMsg Rnd(1,99),PlayerOnline\Spieler_y$,PlayerOnline\net_id,0,1 If send SendNetMsg 1,PLayerOnline\Spieler_x$,PlayerOnline\net_id,0,0 SendNetMsg 1,PlayerOnline\Spieler_y$,PlayerOnline\net_id,0,0 End If End If Next Wend End Function Function PlayerOnline.PlayerOnline( id ) For PlayerOnline.PlayerOnline=Each PlayerOnline If PlayerOnline\net_id=id Then Return PlayerOnline Next End Function ;----------------------------------------------------------------------------------------------------- Function fps() loops = loops+1 If MilliSecs() - fpstime > 1000 Then fpsrate = loops loops = 0 fpstime = MilliSecs() End If Return fpsrate End Function .mapdata Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0 Data 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 Data 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Function Update_network()
While RecvNetMsg() Select NetMsgType() Case 100: PlayerOnline.PlayerOnline = New PlayerOnline PlayerOnline\net_id=NetMsgFrom() PlayerOnline\name=NetPlayerName$( NetMsgFrom() ) Text 10,30,""+PlayerOnline\name+" has joined the game." Case 101: PlayerOnline.PlayerOnline = PlayerOnline( NetMsgFrom() ) If PlayerOnline<>Null Text 10,40,PlayerOnline\name+" has left the game. " Delete PlayerOnline EndIf End Select Wend End Function soweit ich das erkenne weir doch nur der Type 100 und 101 geprüft. Sollte auf einem anderem Type ankommen kriegst dus ja garnet mit Code: [AUSKLAPPEN] Default
PlayerOnline.PlayerOnline = PlayerOnline( NetMsgFrom() ) If PlayerOnline<>Null Debuglog PlayerOnline\name+"@"+NetMsgType()+":"+NetMsgData() Delete PlayerOnline EndIf Das ins Select und du bekommst die Nachricht in den Debuglog. den Rest musste selbst rausfinden. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group