game scene and menu scene are now initialized in states, still need to test for 2 player

This commit is contained in:
Chauntalle Schüle 2020-05-29 13:04:40 +02:00
parent 0296edb080
commit 8537dee231
4 changed files with 37 additions and 16 deletions

View File

@ -19,8 +19,9 @@ class GameState: GKState {
override func didEnter(from previousState: GKState?) { override func didEnter(from previousState: GKState?) {
os_log("Entered Game State", log: LOG, type: .info) os_log("Entered Game State", log: LOG, type: .info)
StateManager.stateManager.menuSc!.loadScene(scene: GameScene(size: StateManager.stateManager.menuSc!.size))
} }
override func update(deltaTime seconds: TimeInterval) { override func update(deltaTime seconds: TimeInterval) {
} }

View File

@ -15,19 +15,8 @@ class GameViewController: UIViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
StateManager.stateManager.wantedState = StateTypes.menuSt
StateManager.stateManager.createStates() StateManager.stateManager.createStates()
StateManager.stateManager.enterState() StateManager.stateManager.changeState(wantedState: .menuSt, menuSc: nil, gameVC: self)
if let view = self.view as! SKView? {
let scene = MenuScene(size: self.view.bounds.size)
EntityManager.menuEMInstance.setScene(scene: scene)
scene.scaleMode = .aspectFill
view.presentScene(scene)
//TODO: create dev profile or remove on delivery
view.showsFPS = true
view.showsNodeCount = true
}
GameCenterManager.sharedInstance.viewController = self GameCenterManager.sharedInstance.viewController = self
} }

View File

@ -12,18 +12,46 @@ import os
class MenuState: GKState { class MenuState: GKState {
let LOG = OSLog.init(subsystem: "MenuState", category: "MenuState") let LOG = OSLog.init(subsystem: "MenuState", category: "MenuState")
var menuEM = EntityManager.menuEMInstance
override func isValidNextState(_ stateClass: AnyClass) -> Bool { override func isValidNextState(_ stateClass: AnyClass) -> Bool {
if CommandLine.arguments.contains("--no-matchmaking") {
return stateClass is GameState.Type
}
return stateClass is SyncingState.Type return stateClass is SyncingState.Type
} }
override func update(deltaTime seconds: TimeInterval) { override func update(deltaTime seconds: TimeInterval) {
/* if menuEM.entities.count != 0 {
menuEM.getBackground()!.update(deltaTime: seconds)
menuEM.getButtonByName(buttonName: "startGameButton").component(ofType: ButtonComponent.self)?.buttonNode.isEnabled = GameCenterManager.isAuthenticated
}
if GameCenterManager.sharedInstance.initIsFinish {
StateManager.stateManager.menuSc!.loadScene(scene: GameCenterManager.sharedInstance.gameScene!)
}*/
} }
override func didEnter(from previousState: GKState?) { override func didEnter(from previousState: GKState?) {
os_log("Entered Menu State", log: LOG, type: .info) os_log("Entered Menu State", log: LOG, type: .info)
if (previousState == nil){
presentFirstViewMenu()
}
} }
override func willExit(to nextState: GKState) { override func willExit(to nextState: GKState) {
} }
func presentFirstViewMenu(){
if let view = StateManager.stateManager.gameVC!.view as! SKView? {
let scene = MenuScene(size: StateManager.stateManager.gameVC!.view.bounds.size)
EntityManager.menuEMInstance.setScene(scene: scene)
scene.scaleMode = .aspectFill
view.presentScene(scene)
//TODO: create dev profile or remove on delivery
view.showsFPS = true
view.showsNodeCount = true
}
}
} }

View File

@ -8,6 +8,7 @@
import SpriteKit import SpriteKit
import SceneKit import SceneKit
class MenuScene: SKScene { class MenuScene: SKScene {
var entityManager = EntityManager.menuEMInstance var entityManager = EntityManager.menuEMInstance
@ -23,12 +24,13 @@ class MenuScene: SKScene {
position: CGPoint(x: midX, y: midY), position: CGPoint(x: midX, y: midY),
onButtonPress: { onButtonPress: {
if CommandLine.arguments.contains("--no-matchmaking") { if CommandLine.arguments.contains("--no-matchmaking") {
self.loadScene(scene: GameScene(size: self.size)) StateManager.stateManager.changeState(wantedState: .gameSt, menuSc: self, gameVC: nil)
//self.loadScene(scene: GameScene(size: self.size))
SoundManager.sharedInstance.stopMenuMusic() SoundManager.sharedInstance.stopMenuMusic()
} else { } else {
if GameCenterManager.isAuthenticated { if GameCenterManager.isAuthenticated {
GameCenterManager.sharedInstance.presentMatchmaker() StateManager.stateManager.changeState(wantedState: .syncingSt, menuSc: self, gameVC: nil)
GameCenterManager.sharedInstance.presentMatchmaker()
}else { }else {
GameCenterManager.sharedInstance.authUser() GameCenterManager.sharedInstance.authUser()
} }
@ -78,4 +80,5 @@ class MenuScene: SKScene {
} }
} }
} }