Multipeer Отправить данные в Sprietkit - PullRequest
0 голосов
/ 24 апреля 2020

Я новичок в Multipeer и не знаю, как эффективно отправлять и получать данные. У всех игроков в моей игре есть определенный c код, который показывает, какое они число, если они игрок 2 или хост или что-то еще. Я хотел бы, чтобы они отправляли данные всем, но также отправляли этот код, чтобы сказать, какой человек отправил им данные, если это игрок 1 или что-то еще

Вот как я сейчас отправляю код: PlayerNum - это номер игрока они есть, но это не работает

 let pointToSend : CGPoint = CGPoint(x: Int(player1Health), y: gunType)
             print("point", pointToSend)
             print("player Stats sent to : host")

         do {
            let pointData = NSCoder.string(for: pointToSend).data(using: .init(rawValue: UInt(PlayerNum)))
        try self.mcSession.send(pointData! as Data, toPeers: self.mcSession.connectedPeers, with: .reliable)
        } catch let error as NSError{
        let ac = UIAlertController(title: "Send error", message: error.localizedDescription, preferredStyle: .alert)
        ac.addAction(UIAlertAction(title: "OK", style: .default))
        let currentViewController : UIViewController=UIApplication.shared.keyWindow!.rootViewController!
        currentViewController.present(ac, animated: true, completion: nil)
                                                     }

И вот как я пытался получить данные:

весело c сеанс (_ сеанс: MCSession, didReceive данные: данные, fromPeer peerID: MCPeerID) {

    if let pointString = NSString(data: data, encoding: String.Encoding.init(rawValue: 1).rawValue) {
        let ballPos = NSCoder.cgPoint(for: pointString as! String)

        print("Player1 Health: (\(ballPos.x), TypeOfGun: \(ballPos.y))")
        HealthOfPlayer1 = CGFloat(ballPos.x)
        playerOfType1 = Int(ballPos.y)
               }
...