diff --git a/GoldWars/GoldWars.xcodeproj/project.pbxproj b/GoldWars/GoldWars.xcodeproj/project.pbxproj index 1213bce..d815479 100644 --- a/GoldWars/GoldWars.xcodeproj/project.pbxproj +++ b/GoldWars/GoldWars.xcodeproj/project.pbxproj @@ -404,6 +404,7 @@ 9E174C88245DF1FF00209FF0 /* BackgroundComponent.swift in Sources */, 9E78ACBA245CBDAF00526FF7 /* HUD.swift in Sources */, 9EC2FBA72476B1EC00ABF11F /* PlayerInfoComponent.swift in Sources */, + AE6BB1C0248030720063ECAE /* States.swift in Sources */, 9EEDE02D246FCD770096C735 /* SpinningLogoEntity.swift in Sources */, 9E174C86245DD91500209FF0 /* ButtonComponent.swift in Sources */, 11036113244B3E30008610AF /* MenuScene.swift in Sources */, @@ -589,8 +590,8 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = GoldWars/GoldWars.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = DDKFQG46BQ; INFOPLIST_FILE = GoldWars/Info.plist; @@ -601,7 +602,7 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = de.hft.stuttgart.ip2.goldwars; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "Developer Profile"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 2; }; @@ -612,8 +613,8 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = GoldWars/GoldWars.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 3; DEVELOPMENT_TEAM = DDKFQG46BQ; INFOPLIST_FILE = GoldWars/Info.plist; @@ -624,7 +625,7 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = de.hft.stuttgart.ip2.goldwars; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "Developer Profile"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 2; }; diff --git a/GoldWars/GoldWars/GameViewController.swift b/GoldWars/GoldWars/GameViewController.swift index a3b45f5..de60002 100644 --- a/GoldWars/GoldWars/GameViewController.swift +++ b/GoldWars/GoldWars/GameViewController.swift @@ -12,9 +12,15 @@ import GameplayKit class GameViewController: UIViewController { + var stateMachine: GKStateMachine? + override func viewDidLoad() { super.viewDidLoad() + createStates() + failedEnteringStates() + self.stateMachine?.enter(MenuState.self) + if let view = self.view as! SKView? { let scene = MenuScene(size: self.view.bounds.size) EntityManager.menuEMInstance.setScene(scene: scene) @@ -43,4 +49,24 @@ class GameViewController: UIViewController { override var prefersStatusBarHidden: Bool { return true } + + func createStates(){ + let menuSt = MenuState() + let syncingSt = SyncingState() + let playingSt = GameState() + + stateMachine = GKStateMachine(states: [menuSt, syncingSt, playingSt]) + } + + func failedEnteringStates(){ + if stateMachine?.enter(MenuState.self) == false { + print("failed to enter MenuState") + } + if stateMachine?.enter(SyncingState.self) == false { + print("failed to enter Syncing") + } + if stateMachine?.enter(GameState.self) == false { + print("failed to enter Game") + } + } } diff --git a/GoldWars/GoldWars/States.swift b/GoldWars/GoldWars/States.swift new file mode 100644 index 0000000..5f34739 --- /dev/null +++ b/GoldWars/GoldWars/States.swift @@ -0,0 +1,41 @@ +// +// States.swift +// GoldWars +// +// Created by Chauntalle Schüle on 28.05.20. +// Copyright © 2020 SP2. All rights reserved. +// + +import GameKit + +class MenuState: GKState { + + override func isValidNextState(_ stateClass: AnyClass) -> Bool { + return stateClass is SyncingState.Type + } + + override func didEnter(from previousState: GKState?) { + print("Entered MenuState") + } +} + +class SyncingState: GKState { + override func isValidNextState(_ stateClass: AnyClass) -> Bool { + return stateClass is GameState.Type + } + + override func didEnter(from previousState: GKState?) { + print("Entered Syncing State") + } + +} + +class GameState: GKState { + override func isValidNextState(_ stateClass: AnyClass) -> Bool { + return stateClass is SyncingState.Type + } + + override func didEnter(from previousState: GKState?) { + print("Entered Game State") + } +}