Create first version of Datatransfermodel
This commit is contained in:
parent
a3361b3752
commit
99b6843606
@ -38,6 +38,7 @@
|
||||
9EA3ABED245C8143006BC61D /* ModalBackgroundComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EA3ABEC245C8143006BC61D /* ModalBackgroundComponent.swift */; };
|
||||
9EA3ABEF245C834B006BC61D /* ModalContentComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EA3ABEE245C834B006BC61D /* ModalContentComponent.swift */; };
|
||||
9EBFD7552462CF5A00E1E219 /* SliderComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EBFD7542462CF5A00E1E219 /* SliderComponent.swift */; };
|
||||
9EC239E1246878A900952F74 /* MessageProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EC239E0246878A900952F74 /* MessageProtocol.swift */; };
|
||||
9EC7E48B2461FBF700396BCD /* SliderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EC7E48A2461FBF700396BCD /* SliderNode.swift */; };
|
||||
9EC86B9F245C88A300796EF3 /* Modal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EC86B9E245C88A300796EF3 /* Modal.swift */; };
|
||||
9EC86BA6245C8AD000796EF3 /* ModalType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9EC86BA5245C8AD000796EF3 /* ModalType.swift */; };
|
||||
@ -94,6 +95,7 @@
|
||||
9EA3ABEC245C8143006BC61D /* ModalBackgroundComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalBackgroundComponent.swift; sourceTree = "<group>"; };
|
||||
9EA3ABEE245C834B006BC61D /* ModalContentComponent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalContentComponent.swift; sourceTree = "<group>"; };
|
||||
9EBFD7542462CF5A00E1E219 /* SliderComponent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SliderComponent.swift; sourceTree = "<group>"; };
|
||||
9EC239E0246878A900952F74 /* MessageProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageProtocol.swift; sourceTree = "<group>"; };
|
||||
9EC7E48A2461FBF700396BCD /* SliderNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SliderNode.swift; sourceTree = "<group>"; };
|
||||
9EC86B9E245C88A300796EF3 /* Modal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Modal.swift; sourceTree = "<group>"; };
|
||||
9EC86BA5245C8AD000796EF3 /* ModalType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalType.swift; sourceTree = "<group>"; };
|
||||
@ -157,6 +159,7 @@
|
||||
110360D2244B101A008610AF /* AppDelegate.swift */,
|
||||
110360DA244B101A008610AF /* GameViewController.swift */,
|
||||
110360DF244B101B008610AF /* Assets.xcassets */,
|
||||
9EC239E0246878A900952F74 /* MessageProtocol.swift */,
|
||||
110360E4244B101B008610AF /* Info.plist */,
|
||||
AE151588245F18EF001D363E /* MatchmakingHelper.swift */,
|
||||
3EBD242B245D8044003CECE7 /* GameCenterHelper.swift */,
|
||||
@ -367,6 +370,7 @@
|
||||
9E78ACB8245CB75B00526FF7 /* TeamComponent.swift in Sources */,
|
||||
9EA3ABEF245C834B006BC61D /* ModalContentComponent.swift in Sources */,
|
||||
9EC86BA6245C8AD000796EF3 /* ModalType.swift in Sources */,
|
||||
9EC239E1246878A900952F74 /* MessageProtocol.swift in Sources */,
|
||||
9E78ACBE245CC9C000526FF7 /* AtkBoostSkillComponent.swift in Sources */,
|
||||
9E78ACC4245CCA3600526FF7 /* SpySkillComponent.swift in Sources */,
|
||||
9EA3ABEB245C6DFA006BC61D /* BaseNode.swift in Sources */,
|
||||
@ -557,8 +561,8 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = GoldWars/GoldWars.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 3;
|
||||
DEVELOPMENT_TEAM = DDKFQG46BQ;
|
||||
INFOPLIST_FILE = GoldWars/Info.plist;
|
||||
@ -569,7 +573,7 @@
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = de.hft.stuttgart.ip2.goldwars;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "Developer Profile";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = 2;
|
||||
};
|
||||
@ -580,8 +584,8 @@
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CODE_SIGN_ENTITLEMENTS = GoldWars/GoldWars.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 3;
|
||||
DEVELOPMENT_TEAM = DDKFQG46BQ;
|
||||
INFOPLIST_FILE = GoldWars/Info.plist;
|
||||
@ -592,7 +596,7 @@
|
||||
MARKETING_VERSION = 1.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = de.hft.stuttgart.ip2.goldwars;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "Developer Profile";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = 2;
|
||||
};
|
||||
|
@ -32,7 +32,9 @@ class Base: GKEntity {
|
||||
base.changeOwnerShip = true
|
||||
self.unitCount -= units
|
||||
base.unitCount += units
|
||||
MultiplayerNetwork.sharedInstance.sendPlayerMove(unitcount: units)
|
||||
return [self, base]
|
||||
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
|
@ -100,12 +100,32 @@ class MatchmakingHelper: NSObject, GKMatchmakerViewControllerDelegate, GKMatchDe
|
||||
startMatch()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
func decode<T>(data: NSData) -> T {
|
||||
let pointer = UnsafeMutablePointer<T>.allocate(capacity: MemoryLayout<T>.size)
|
||||
data.getBytes(pointer, length: MemoryLayout<T>.size)
|
||||
return pointer.move()
|
||||
}
|
||||
|
||||
/*
|
||||
Vom match erhaltene Spielerdaten
|
||||
*/
|
||||
private func match(match: GKMatch!, didReceiveData data: NSData!,fromPlayer playerID: String!) {
|
||||
if mpMatch != match { return }
|
||||
print("Daten empfangen!")
|
||||
|
||||
let pointer = UnsafeMutablePointer<Message>.allocate(capacity: MemoryLayout<Message>.size)
|
||||
data.getBytes(pointer, length: MemoryLayout<Message>.size)
|
||||
let message = pointer.move()
|
||||
|
||||
switch message.messageType{
|
||||
case MessageType.PlayerMove:
|
||||
let playerMove = message as! PlayerMove
|
||||
let count = playerMove.unitCount
|
||||
|
||||
}
|
||||
|
||||
delegate?.matchReceivedData(match: match, data: data, fromPlayer: playerID)
|
||||
|
||||
}
|
||||
|
60
GoldWars/GoldWars/MessageProtocol.swift
Normal file
60
GoldWars/GoldWars/MessageProtocol.swift
Normal file
@ -0,0 +1,60 @@
|
||||
//
|
||||
// MessageProtocol.swift
|
||||
// GoldWars
|
||||
//
|
||||
// Created by Niko Jochim on 10.05.20.
|
||||
// Copyright © 2020 SP2. All rights reserved.
|
||||
//
|
||||
|
||||
import GameplayKit
|
||||
import Foundation
|
||||
|
||||
|
||||
protocol MultiplayerProtocol {
|
||||
|
||||
}
|
||||
enum MessageType : Int{
|
||||
case PlayerMove
|
||||
|
||||
}
|
||||
|
||||
protocol Message {
|
||||
var messageType:MessageType { get }
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct PlayerMove : Message{
|
||||
let messageType: MessageType
|
||||
|
||||
// let message: Message
|
||||
//let fromBase: //was?
|
||||
//let toBase: //was?
|
||||
let unitCount: Int
|
||||
}
|
||||
|
||||
class MultiplayerNetwork: NSObject{
|
||||
static let sharedInstance = MultiplayerNetwork()
|
||||
|
||||
|
||||
func sendData(data: NSData) {
|
||||
let mmHelper = MatchmakingHelper.sharedInstance
|
||||
if let multiplayerMatch = mmHelper.mpMatch {
|
||||
do {
|
||||
try multiplayerMatch.sendData(toAllPlayers: data as Data, with: .reliable)
|
||||
} catch {
|
||||
print("Tim war am Werk")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func sendPlayerMove(unitcount:Int) {
|
||||
var playerMoveMsg = PlayerMove(messageType: MessageType.PlayerMove, unitCount: unitcount)
|
||||
|
||||
|
||||
let data = NSData(bytes: &playerMoveMsg, length: MemoryLayout<PlayerMove>.size)
|
||||
|
||||
sendData(data: data)
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user