Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中的GameCenter-发送和接收数据_Swift_Game Center - Fatal编程技术网

Swift中的GameCenter-发送和接收数据

Swift中的GameCenter-发送和接收数据,swift,game-center,Swift,Game Center,我对斯威夫特和游戏中心都是新手。我正在创建一个小的多人游戏,需要我在玩家之间传输数据。我不确定如何做到这一点,因为我找到的几乎所有东西都是Objective-C语言,我对这两种语言都不太熟悉,无法将代码从一种语言翻译到另一种语言 我希望能够发送给其他玩家并让他们接收的数据类型是在结构中声明的x,y坐标,所以 struct Point: { var x:Int = 0; var y:Int = 0; } 在iOS开发者库中有一个GameCenter编程指南,其中包含以下代码 -

我对斯威夫特和游戏中心都是新手。我正在创建一个小的多人游戏,需要我在玩家之间传输数据。我不确定如何做到这一点,因为我找到的几乎所有东西都是Objective-C语言,我对这两种语言都不太熟悉,无法将代码从一种语言翻译到另一种语言

我希望能够发送给其他玩家并让他们接收的数据类型是在结构中声明的x,y坐标,所以

struct Point: 
{
    var x:Int = 0;
    var y:Int = 0;
}
在iOS开发者库中有一个GameCenter编程指南,其中包含以下代码

- (void) sendPosition
{
    NSError *error;
    PositionPacket msg;
    msg.messageKind = PositionMessage;
    msg.x = currentPosition.x;
    msg.y = currentPosition.y;
    NSData *packet = [NSData dataWithBytes:&msg length:sizeof(PositionPacket)];
    [match sendDataToAllPlayers: packet withDataMode: GKMatchSendDataUnreliable error:&error];
    if (error != nil)
    {
        // Handle the error.
    }
}

- (void)match:(GKMatch *)match didReceiveData:(NSData *)data fromPlayer:(NSString *)playerID
{
    Packet *p = (Packet*)[data bytes];
    if (p.messageKind == PositionMessage)
    {
        // Handle a position message.
    }
}
据我所知,上面的代码似乎正是我希望我的项目所做的

问题 -如何将上述代码转换为swift,并使其与我的点结构一起工作? -GC编程指南提到了消息格式和使用枚举,例如,为了区分不同的消息。即使我总是发送相同类型的消息,我是否需要对我的结构进行此类更改