direct play problem
Übersicht

![]() |
DottakopfBetreff: direct play problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo bbler !
Ich habe gestern angefangen die tutorials über netzwerkbefehle von robsite durchzuarbeiten. Direct play scheint recht simpel zu sein, und hab daher auch gleich versucht ein programm zu schreiben. Ich habs eigentlich auch zum laufen gebracht, allerdings nur solange man nicht mehrere daten auf einmal versucht zu schicken. Mein Problem : Ich habe ein Programm bei dem man peer netzwerk (driect play) 2 quadrate steuert. Solange ich nur die X koordinaten daten sende funktioniert das auch ganz ok. aber sobald ich die Y koords hinzunehme funtz nix mehr. Leider seh ich einfach nicht meinen fehler ![]() Kurz in worten was ich gemacht habe: Immer wenn ein spieler beitritt, wird dieser in einem Type abgespeichert und bekommt zur idientifikation eine id verpasst. So und nun sende ich einfach meine Localen daten vom Hero an alle anderen type einträge (IDS). Allerdings scheint das nicht zu funktionieren. Mach ich irgendwas falsch ? weil in dem tut wird eher flüchtig auf dieses "direct play" eingegangen, daher hab ichs mal so ausm bauch raus zusammen geschnippselt. Code: [AUSKLAPPEN] Graphics 800,600,16,2 SetBuffer BackBuffer() Global frametimer = CreateTimer(60) Global hero_x Global hero_y Global in_dat ;daten die per netz eingehen Global data_type ;was sind es für daten Global data_fromID ;von wem kommt die msg ? Global game = StartNetGame() Global Net_Hero = CreateNetPlayer("" + Input("Nicname : ") ) Flip ;hier werden die anderen netz spieler gespeichert Type net_player Field nplayer_x Field nplayer_y Field nplayer_ID End Type ;////////////////////////////MAIN\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ Repeat Cls WaitTimer(frameTimer) update_players() get_net_data() send_net_data() Flip 0 Until KeyHit(1) ;//////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;------------------------------------------------------------------------- Function update_players() ;local hero moving If KeyHit(203) Then hero_x = hero_x -1 If KeyHit(205) Then hero_x = hero_x +1 If KeyHit(200) Then hero_y = hero_y -1 If KeyHit(208) Then hero_y = hero_y +1 Rect hero_x*32,hero_y*32,32,32,1 ;net player moving and updating For info.net_player = Each net_player Rect info\nplayer_x*32,info\nplayer_y*32,32,32,1 Next End Function ;------------------------------------------------------------------------- Function get_net_data() in_data = RecvNetMsg() If in_data<>0 Then Data_type = NetMsgType() Data_fromID = NetMsgFrom() ;filtern Select data_type Case 100 info.net_player = New net_player info\nplayer_ID = Data_fromID info\nplayer_x = 1 info\nplayer_y = 1 Default If data_type >0 And data_type < 100 Then ;wenn die nachricht id mit type id stimmt updaten For info.net_player = Each net_player If info\nplayer_id = data_fromID Then info\nplayer_x = NetMsgData() info\nplayer_y = NetMsgData() Exit End If Next End If End Select End If End Function ;------------------------------------------------------------------------- Function send_net_data() ;send hero datas For info.net_player = Each net_player SendNetMsg 1 , hero_x , net_hero , info\nplayer_ID , 0 SendNetMsg 2 , hero_y , net_hero , info\nplayer_ID , 0 Next End Function ;------------------------------------------------------------------------- wenn man jetzt die zeilen ausklammert, in denen die y koords gesendet werden( also beim schicken und dem annehmen) dann funtz ja noch alles. Meine logik sagt mir, dass da iwas mit der zuteilung der werte nicht stimmt. Aber wie löse ich das ? mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group