今DXライブラリで1対1の通信対戦のアクションゲームを作っております。
それぞれほぼ同じコードを使って弾と自分の位置を相手に送信し合うという方法で通信しているのですが、通信の関数を作る途中でつまずいてしまいました。
OSはwindows xpでコンパイラはVisualC++ 2008 Express Editionです。
通信方法としてDXライブラリのUDP通信の関数(http://homepage2.nifty.com/natupaji/DxL ... html#R13N1)を使用し、
1m以内のlanで通信するのでバイナリデータ化せずに通信しております。
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
IPDATA Ip ;
int NetUDPHandle ;
int x1=100,y1=300; //自分の座標
int x2=300,y2=100; //相手の座標
int go[2]; //送信用配列
int come[2]; //受信用配列
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
NetUDPHandle = MakeUDPSocket( -1 ) ;
Ip.d1 = *** ; //IPアドレスは具体的に入力していません
Ip.d2 = *** ;
Ip.d3 = *** ;
Ip.d4 = *** ;
while(ProcessMassage()==0)
{
//移動などの処理がここに入ります
//送信部分(怪しいところ)
go[0]=x1;
go[1]=y1;
NetWorkSendUDP( NetUDPHandle, Ip, 9850, go, 8 ) ;
//受信部分(わからないところ)
if(CheckNetWorkRecvUDP(nethandle)==TRUE)
{
NetRecvUDP(nethandle,NULL,NULL,come,8,FALSE);
x2=come[0];
y2=come[1];
}
}
DeleteUDPSocket( NetUDPHandle ) ;
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ;
}