add correct code master
authorAlan Knowles <alan@roojs.com>
Wed, 30 Mar 2022 09:19:54 +0000 (17:19 +0800)
committerAlan Knowles <alan@roojs.com>
Wed, 30 Mar 2022 09:19:54 +0000 (17:19 +0800)
12 files changed:
GameProjectTest/AppDelegate.swift
GameProjectTest/Assets.xcassets/Image.imageset/Contents.json [new file with mode: 0644]
GameProjectTest/Assets.xcassets/Image.imageset/iterations.png [new file with mode: 0644]
GameProjectTest/ContainerController.swift [new file with mode: 0644]
GameProjectTest/GameViewController.swift
GameProjectTest/HomeController.swift [new file with mode: 0644]
GameProjectTest/Main.storyboard [new file with mode: 0644]
app.GameProjectTest.xcodeproj/project.pbxproj
app.GameProjectTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata
app.GameProjectTest.xcodeproj/project.xcworkspace/xcuserdata/alan.xcuserdatad/UserInterfaceState.xcuserstate
app.GameProjectTest.xcodeproj/xcuserdata/alan.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
app.GameProjectTest.xcodeproj/xcuserdata/alan.xcuserdatad/xcschemes/xcschememanagement.plist

index f17c824..6414124 100644 (file)
@@ -1,13 +1,13 @@
 //
 //  AppDelegate.swift
-//  GameProjectTest
+//  GameProjectTwo
 //
-//  Created by Alan Knowles on 29/3/2022.
+//  Created by Alan Knowles on 30/3/2022.
 //
 
 import UIKit
 
-@main
+@UIApplicationMain
 class AppDelegate: UIResponder, UIApplicationDelegate {
 
     var window: UIWindow?
@@ -15,6 +15,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
 
     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
         // Override point for customization after application launch.
+        
+        window = UIWindow()
+        window?.makeKeyAndVisible()
+         window?.rootViewController = ContainerController()
         return true
     }
 
diff --git a/GameProjectTest/Assets.xcassets/Image.imageset/Contents.json b/GameProjectTest/Assets.xcassets/Image.imageset/Contents.json
new file mode 100644 (file)
index 0000000..f601856
--- /dev/null
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "iterations.png",
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}
diff --git a/GameProjectTest/Assets.xcassets/Image.imageset/iterations.png b/GameProjectTest/Assets.xcassets/Image.imageset/iterations.png
new file mode 100644 (file)
index 0000000..cd1f79f
Binary files /dev/null and b/GameProjectTest/Assets.xcassets/Image.imageset/iterations.png differ
diff --git a/GameProjectTest/ContainerController.swift b/GameProjectTest/ContainerController.swift
new file mode 100644 (file)
index 0000000..9818187
--- /dev/null
@@ -0,0 +1,56 @@
+//
+//  ContainerController.swift
+//  UPlab_MVC
+//
+//  Created by Ernest.lee on 17/10/2019.
+//  Copyright © 2019 Ernest.lee. All rights reserved.
+//
+
+import UIKit
+
+class ContainerController : UIViewController
+{
+    //MARK: - Properties
+    var homeVC : HomeController!
+    var centerController : UIViewController!
+
+    
+   
+    
+    //MARK: - Init
+    override func viewDidLoad(){
+        super.viewDidLoad()
+        configureHomeController()
+    }
+    
+    override var preferredStatusBarStyle: UIStatusBarStyle {
+        return .lightContent
+    }
+    
+    override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
+        return .slide
+    }
+    
+    override var prefersStatusBarHidden: Bool {
+        return true
+    }
+    
+    //MARK: - Handlers
+    
+    func configureHomeController() {
+        let homeController = HomeController()
+       // homeController.delegate = self
+        homeVC = homeController
+        centerController = UINavigationController(rootViewController: homeController)
+        
+        view.addSubview(centerController.view)
+        addChild(centerController)
+        centerController.didMove(toParent: self)
+    
+       
+    }
+     
+}
+
+
index be5bd9c..1dbd238 100644 (file)
@@ -1,20 +1,23 @@
 //
 //  GameViewController.swift
-//  GameProjectTest
+//  GameProjectTwo
 //
-//  Created by Alan Knowles on 29/3/2022.
+//  Created by Alan Knowles on 30/3/2022.
 //
 
 import UIKit
 import QuartzCore
 import SceneKit
 
-
-
-
-
 class GameViewController: UIViewController {
+    
+    override func loadView()
+    {
+        let scnView  = SCNView()
+        self.view = scnView
+        
+    }
+    
 
     override func viewDidLoad() {
         super.viewDidLoad()
@@ -45,10 +48,10 @@ class GameViewController: UIViewController {
         scene.rootNode.addChildNode(ambientLightNode)
         
         // retrieve the ship node
-        let ship = scene.rootNode.childNode(withName: "ship", recursively: true)!
+        //let ship = scene.rootNode.childNode(withName: "ship", recursively: true)!
         
         // animate the 3d object
-        ship.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))
+        //ship.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))
         
         // retrieve the SCNView
         let scnView = self.view as! SCNView
@@ -63,50 +66,15 @@ class GameViewController: UIViewController {
         scnView.showsStatistics = true
         
         // configure the view
-        scnView.backgroundColor = UIColor.black
+        scnView.backgroundColor = UIColor.red
         
         // add a tap gesture recognizer
-        let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
-        scnView.addGestureRecognizer(tapGesture)
-        scnView.isHidden = true
+        //let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
+        //scnView.addGestureRecognizer(tapGesture)
          
     }
     
-    @objc
-    func handleTap(_ gestureRecognize: UIGestureRecognizer) {
-        // retrieve the SCNView
-        let scnView = self.view as! SCNView
-        
-        // check what nodes are tapped
-        let p = gestureRecognize.location(in: scnView)
-        let hitResults = scnView.hitTest(p, options: [:])
-        // check that we clicked on at least one object
-        if hitResults.count > 0 {
-            // retrieved the first clicked object
-            let result = hitResults[0]
-            
-            // get its material
-            let material = result.node.geometry!.firstMaterial!
-            
-            // highlight it
-            SCNTransaction.begin()
-            SCNTransaction.animationDuration = 0.5
-            
-            // on completion - unhighlight
-            SCNTransaction.completionBlock = {
-                SCNTransaction.begin()
-                SCNTransaction.animationDuration = 0.5
-                
-                material.emission.contents = UIColor.black
-                
-                SCNTransaction.commit()
-            }
-            
-            material.emission.contents = UIColor.red
-            
-            SCNTransaction.commit()
-        }
-    }
+   
     
     override var shouldAutorotate: Bool {
         return true
diff --git a/GameProjectTest/HomeController.swift b/GameProjectTest/HomeController.swift
new file mode 100644 (file)
index 0000000..35c2486
--- /dev/null
@@ -0,0 +1,155 @@
+//
+//  HomeViewController.swift
+//  UPlab_MVC
+//
+//  Created by Ernest.lee on 17/10/2019.
+//  Copyright © 2019 Ernest.lee. All rights reserved.
+//
+
+import UIKit
+import SceneKit
+       
+public extension UIView {
+    enum ViewSide {
+        case Left, Right, Top, Bottom
+    }
+    func addBorder(toSide side: ViewSide, withColor color: CGColor, andThickness thickness: CGFloat) {
+
+        let border = CALayer()
+        border.backgroundColor = color
+
+        switch side {
+        case .Left: border.frame = CGRect(x: frame.minX, y: frame.minY, width: thickness, height: frame.height); break
+        case .Right: border.frame = CGRect(x: frame.maxX, y: frame.minY, width: thickness, height: frame.height); break
+        case .Top: border.frame = CGRect(x: frame.minX, y: frame.minY, width: frame.width, height: thickness); break
+        case .Bottom: border.frame = CGRect(x: frame.minX, y: frame.maxY, width: frame.width, height: thickness); break
+        }
+
+        layer.addSublayer(border)
+    }
+    func anchor(top: NSLayoutYAxisAnchor?, left: NSLayoutXAxisAnchor?, bottom: NSLayoutYAxisAnchor?, right: NSLayoutXAxisAnchor?,
+                paddingTop: CGFloat, paddingLeft: CGFloat, paddingBottom: CGFloat, paddingRight: CGFloat,
+                width: CGFloat, height: CGFloat, enableInsets: Bool) {
+        var topInset = CGFloat(0)
+        var bottomInset = CGFloat(0)
+        
+        if #available(iOS 11, *), enableInsets {
+            let insets = self.safeAreaInsets
+            topInset = insets.top
+            bottomInset = insets.bottom
+            
+        }
+        
+        
+        translatesAutoresizingMaskIntoConstraints = false
+        
+        if let top = top {
+            self.topAnchor.constraint(equalTo: top, constant: paddingTop+topInset).isActive = true
+        }
+        if let left = left {
+            self.leftAnchor.constraint(equalTo: left, constant: paddingLeft).isActive = true
+        }
+        if let right = right {
+            rightAnchor.constraint(equalTo: right, constant: -paddingRight).isActive = true
+        }
+        if let bottom = bottom {
+            bottomAnchor.constraint(equalTo: bottom, constant: -paddingBottom-bottomInset).isActive = true
+        }
+        if height != 0 {
+            heightAnchor.constraint(equalToConstant: height).isActive = true
+        }
+        if width != 0 {
+            widthAnchor.constraint(equalToConstant: width).isActive = true
+        }
+        
+    }
+}
+/*
+ HomeVC is the main controller, it is responsible for Nav bar control and setting up childVC
+ */
+
+class HomeController: UIViewController{
+    
+   
+  
+    //MARK: Properties
+    let mapVC: GameViewController = GameViewController()
+    
+    
+     
+    //MARK: Init
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        view.backgroundColor = .gray
+        setUpVC()
+        setUpNavBar()
+        setConstraints()
+    }
+    
+    
+    
+    func setUpVC(){
+       
+        //Map VC
+        
+        addChild(mapVC)
+
+      //  if let frame = nil {
+      //      mapVC.view.frame = frame
+      //  }
+
+        view.addSubview(mapVC.view)
+        mapVC.didMove(toParent: self)
+      
+        
+    }
+    
+    
+    func setConstraints(){
+        /*
+        mapVC.view.anchor(top: nil, left: nil,
+                          bottom: nil, right: nil,
+                          paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0, enableInsets: false)
+        if #available(iOS 11.0, *) {
+            mapVC.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true
+        }
+        
+        mapVC.view.addBorder(toSide: .Left, withColor: UIColor.black.cgColor, andThickness: 1.0)
+        */
+       
+        
+    }
+}
+
+
+
+extension HomeController {
+    func setUpNavBar(){
+        navigationController?.navigationBar.barTintColor = .white
+        navigationController?.navigationBar.isTranslucent = true
+        navigationController?.navigationBar.backgroundColor = .white
+        
+       
+        let threeButton = UIBarButtonItem(image: #imageLiteral(resourceName: "Image").withRenderingMode(.alwaysOriginal),
+                                          style: .plain,
+                                          target: self,
+                                          action: #selector(handleThree))
+        
+
+        
+        
+        navigationItem.leftBarButtonItems = [threeButton]
+         
+    }
+    
+    //MARK: - Nav Bar Handler
+    
+    
+    @objc func handleThree(){
+        //delegate?.handleThreeToggle()
+        
+    }
+   
+}
diff --git a/GameProjectTest/Main.storyboard b/GameProjectTest/Main.storyboard
new file mode 100644 (file)
index 0000000..dc00fc4
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <capability name="Safe area layout guides" minToolsVersion="9.0"/>
+        <capability name="System colors in document resources" minToolsVersion="11.0"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="s0d-6b-0kx">
+            <objects>
+                <viewController id="Y6W-OH-hqX" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="5EZ-qb-Rvc">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <viewLayoutGuide key="safeArea" id="vDu-zF-Fre"/>
+                        <color key="backgroundColor" systemColor="systemBackgroundColor"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Ief-a0-LHa" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="14" y="35"/>
+        </scene>
+    </scenes>
+    <resources>
+        <systemColor name="systemBackgroundColor">
+            <color white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
+</document>
index 3637ac9..cfcffbc 100644 (file)
@@ -7,26 +7,30 @@
        objects = {
 
 /* Begin PBXBuildFile section */
-               E7F55F6327F2E26100A63CCF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F55F6227F2E26100A63CCF /* AppDelegate.swift */; };
-               E7F55F6527F2E26100A63CCF /* art.scnassets in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F6427F2E26100A63CCF /* art.scnassets */; };
-               E7F55F6727F2E26100A63CCF /* GameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F55F6627F2E26100A63CCF /* GameViewController.swift */; };
-               E7F55F6A27F2E26100A63CCF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F6827F2E26100A63CCF /* Main.storyboard */; };
-               E7F55F6C27F2E26200A63CCF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F6B27F2E26200A63CCF /* Assets.xcassets */; };
-               E7F55F6F27F2E26200A63CCF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F6D27F2E26200A63CCF /* LaunchScreen.storyboard */; };
+               E7F55F8F27F4271800A63CCF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F55F8E27F4271800A63CCF /* AppDelegate.swift */; };
+               E7F55F9127F4271800A63CCF /* art.scnassets in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F9027F4271800A63CCF /* art.scnassets */; };
+               E7F55F9327F4271800A63CCF /* GameViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F55F9227F4271800A63CCF /* GameViewController.swift */; };
+               E7F55F9827F4271900A63CCF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F9727F4271900A63CCF /* Assets.xcassets */; };
+               E7F55F9B27F4271900A63CCF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E7F55F9927F4271900A63CCF /* LaunchScreen.storyboard */; };
+               E7F55FA227F427B800A63CCF /* ContainerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F55FA127F427B800A63CCF /* ContainerController.swift */; };
+               E7F55FA627F434D400A63CCF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E7F55FA527F434D400A63CCF /* Main.storyboard */; };
+               E7F55FA827F4399A00A63CCF /* HomeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F55FA727F4399A00A63CCF /* HomeController.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
-               E7F55F5F27F2E26100A63CCF /* app.GameProjectTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = app.GameProjectTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
-               E7F55F6227F2E26100A63CCF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
-               E7F55F6427F2E26100A63CCF /* art.scnassets */ = {isa = PBXFileReference; lastKnownFileType = wrapper.scnassets; path = art.scnassets; sourceTree = "<group>"; };
-               E7F55F6627F2E26100A63CCF /* GameViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameViewController.swift; sourceTree = "<group>"; };
-               E7F55F6927F2E26100A63CCF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
-               E7F55F6B27F2E26200A63CCF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
-               E7F55F6E27F2E26200A63CCF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+               E7F55F8B27F4271800A63CCF /* app.GameProjectTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = app.GameProjectTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
+               E7F55F8E27F4271800A63CCF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+               E7F55F9027F4271800A63CCF /* art.scnassets */ = {isa = PBXFileReference; lastKnownFileType = wrapper.scnassets; path = art.scnassets; sourceTree = "<group>"; };
+               E7F55F9227F4271800A63CCF /* GameViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameViewController.swift; sourceTree = "<group>"; };
+               E7F55F9727F4271900A63CCF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+               E7F55F9A27F4271900A63CCF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+               E7F55FA127F427B800A63CCF /* ContainerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContainerController.swift; sourceTree = "<group>"; };
+               E7F55FA527F434D400A63CCF /* Main.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; };
+               E7F55FA727F4399A00A63CCF /* HomeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeController.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
-               E7F55F5C27F2E26100A63CCF /* Frameworks */ = {
+               E7F55F8827F4271800A63CCF /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
-               E7F55F5627F2E26100A63CCF = {
+               E7F55F8227F4271800A63CCF = {
                        isa = PBXGroup;
                        children = (
-                               E7F55F6127F2E26100A63CCF /* GameProjectTest */,
-                               E7F55F6027F2E26100A63CCF /* Products */,
+                               E7F55F8D27F4271800A63CCF /* GameProjectTest */,
+                               E7F55F8C27F4271800A63CCF /* Products */,
                        );
                        sourceTree = "<group>";
                };
-               E7F55F6027F2E26100A63CCF /* Products */ = {
+               E7F55F8C27F4271800A63CCF /* Products */ = {
                        isa = PBXGroup;
                        children = (
-                               E7F55F5F27F2E26100A63CCF /* app.GameProjectTest.app */,
+                               E7F55F8B27F4271800A63CCF /* app.GameProjectTest.app */,
                        );
                        name = Products;
                        sourceTree = "<group>";
                };
-               E7F55F6127F2E26100A63CCF /* GameProjectTest */ = {
+               E7F55F8D27F4271800A63CCF /* GameProjectTest */ = {
                        isa = PBXGroup;
                        children = (
-                               E7F55F6227F2E26100A63CCF /* AppDelegate.swift */,
-                               E7F55F6427F2E26100A63CCF /* art.scnassets */,
-                               E7F55F6627F2E26100A63CCF /* GameViewController.swift */,
-                               E7F55F6827F2E26100A63CCF /* Main.storyboard */,
-                               E7F55F6B27F2E26200A63CCF /* Assets.xcassets */,
-                               E7F55F6D27F2E26200A63CCF /* LaunchScreen.storyboard */,
+                               E7F55F8E27F4271800A63CCF /* AppDelegate.swift */,
+                               E7F55F9027F4271800A63CCF /* art.scnassets */,
+                               E7F55F9227F4271800A63CCF /* GameViewController.swift */,
+                               E7F55F9727F4271900A63CCF /* Assets.xcassets */,
+                               E7F55F9927F4271900A63CCF /* LaunchScreen.storyboard */,
+                               E7F55FA127F427B800A63CCF /* ContainerController.swift */,
+                               E7F55FA527F434D400A63CCF /* Main.storyboard */,
+                               E7F55FA727F4399A00A63CCF /* HomeController.swift */,
                        );
                        path = GameProjectTest;
                        sourceTree = "<group>";
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
-               E7F55F5E27F2E26100A63CCF /* app.GameProjectTest */ = {
+               E7F55F8A27F4271800A63CCF /* app.GameProjectTest */ = {
                        isa = PBXNativeTarget;
-                       buildConfigurationList = E7F55F7227F2E26200A63CCF /* Build configuration list for PBXNativeTarget "app.GameProjectTest" */;
+                       buildConfigurationList = E7F55F9E27F4271900A63CCF /* Build configuration list for PBXNativeTarget "app.GameProjectTest" */;
                        buildPhases = (
-                               E7F55F5B27F2E26100A63CCF /* Sources */,
-                               E7F55F5C27F2E26100A63CCF /* Frameworks */,
-                               E7F55F5D27F2E26100A63CCF /* Resources */,
+                               E7F55F8727F4271800A63CCF /* Sources */,
+                               E7F55F8827F4271800A63CCF /* Frameworks */,
+                               E7F55F8927F4271800A63CCF /* Resources */,
                        );
                        buildRules = (
                        );
                        dependencies = (
                        );
                        name = app.GameProjectTest;
-                       productName = GameProjectTest;
-                       productReference = E7F55F5F27F2E26100A63CCF /* app.GameProjectTest.app */;
+                       productName = GameProjectTwo;
+                       productReference = E7F55F8B27F4271800A63CCF /* app.GameProjectTest.app */;
                        productType = "com.apple.product-type.application";
                };
 /* End PBXNativeTarget section */
 
 /* Begin PBXProject section */
-               E7F55F5727F2E26100A63CCF /* Project object */ = {
+               E7F55F8327F4271800A63CCF /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
                                BuildIndependentTargetsInParallel = 1;
                                LastSwiftUpdateCheck = 1330;
                                LastUpgradeCheck = 1330;
                                TargetAttributes = {
-                                       E7F55F5E27F2E26100A63CCF = {
+                                       E7F55F8A27F4271800A63CCF = {
                                                CreatedOnToolsVersion = 13.3;
                                        };
                                };
                        };
-                       buildConfigurationList = E7F55F5A27F2E26100A63CCF /* Build configuration list for PBXProject "app.GameProjectTest" */;
+                       buildConfigurationList = E7F55F8627F4271800A63CCF /* Build configuration list for PBXProject "app.GameProjectTest" */;
                        compatibilityVersion = "Xcode 13.0";
                        developmentRegion = en;
                        hasScannedForEncodings = 0;
                                en,
                                Base,
                        );
-                       mainGroup = E7F55F5627F2E26100A63CCF;
-                       productRefGroup = E7F55F6027F2E26100A63CCF /* Products */;
+                       mainGroup = E7F55F8227F4271800A63CCF;
+                       productRefGroup = E7F55F8C27F4271800A63CCF /* Products */;
                        projectDirPath = "";
                        projectRoot = "";
                        targets = (
-                               E7F55F5E27F2E26100A63CCF /* app.GameProjectTest */,
+                               E7F55F8A27F4271800A63CCF /* app.GameProjectTest */,
                        );
                };
 /* End PBXProject section */
 
 /* Begin PBXResourcesBuildPhase section */
-               E7F55F5D27F2E26100A63CCF /* Resources */ = {
+               E7F55F8927F4271800A63CCF /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               E7F55F6527F2E26100A63CCF /* art.scnassets in Resources */,
-                               E7F55F6F27F2E26200A63CCF /* LaunchScreen.storyboard in Resources */,
-                               E7F55F6C27F2E26200A63CCF /* Assets.xcassets in Resources */,
-                               E7F55F6A27F2E26100A63CCF /* Main.storyboard in Resources */,
+                               E7F55F9127F4271800A63CCF /* art.scnassets in Resources */,
+                               E7F55F9B27F4271900A63CCF /* LaunchScreen.storyboard in Resources */,
+                               E7F55F9827F4271900A63CCF /* Assets.xcassets in Resources */,
+                               E7F55FA627F434D400A63CCF /* Main.storyboard in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
 /* End PBXResourcesBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
-               E7F55F5B27F2E26100A63CCF /* Sources */ = {
+               E7F55F8727F4271800A63CCF /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               E7F55F6727F2E26100A63CCF /* GameViewController.swift in Sources */,
-                               E7F55F6327F2E26100A63CCF /* AppDelegate.swift in Sources */,
+                               E7F55FA827F4399A00A63CCF /* HomeController.swift in Sources */,
+                               E7F55F9327F4271800A63CCF /* GameViewController.swift in Sources */,
+                               E7F55F8F27F4271800A63CCF /* AppDelegate.swift in Sources */,
+                               E7F55FA227F427B800A63CCF /* ContainerController.swift in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
 /* End PBXSourcesBuildPhase section */
 
 /* Begin PBXVariantGroup section */
-               E7F55F6827F2E26100A63CCF /* Main.storyboard */ = {
+               E7F55F9927F4271900A63CCF /* LaunchScreen.storyboard */ = {
                        isa = PBXVariantGroup;
                        children = (
-                               E7F55F6927F2E26100A63CCF /* Base */,
-                       );
-                       name = Main.storyboard;
-                       sourceTree = "<group>";
-               };
-               E7F55F6D27F2E26200A63CCF /* LaunchScreen.storyboard */ = {
-                       isa = PBXVariantGroup;
-                       children = (
-                               E7F55F6E27F2E26200A63CCF /* Base */,
+                               E7F55F9A27F4271900A63CCF /* Base */,
                        );
                        name = LaunchScreen.storyboard;
                        sourceTree = "<group>";
 /* End PBXVariantGroup section */
 
 /* Begin XCBuildConfiguration section */
-               E7F55F7027F2E26200A63CCF /* Debug */ = {
+               E7F55F9C27F4271900A63CCF /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ALWAYS_SEARCH_USER_PATHS = NO;
                        };
                        name = Debug;
                };
-               E7F55F7127F2E26200A63CCF /* Release */ = {
+               E7F55F9D27F4271900A63CCF /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ALWAYS_SEARCH_USER_PATHS = NO;
                        };
                        name = Release;
                };
-               E7F55F7327F2E26200A63CCF /* Debug */ = {
+               E7F55F9F27F4271900A63CCF /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                                        "@executable_path/Frameworks",
                                );
                                MARKETING_VERSION = 1.0;
-                               PRODUCT_BUNDLE_IDENTIFIER = roojs.GameProjectTest;
+                               PRODUCT_BUNDLE_IDENTIFIER = roojs.GameProjectTwo;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                SWIFT_VERSION = 5.0;
                        };
                        name = Debug;
                };
-               E7F55F7427F2E26200A63CCF /* Release */ = {
+               E7F55FA027F4271900A63CCF /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                                        "@executable_path/Frameworks",
                                );
                                MARKETING_VERSION = 1.0;
-                               PRODUCT_BUNDLE_IDENTIFIER = roojs.GameProjectTest;
+                               PRODUCT_BUNDLE_IDENTIFIER = roojs.GameProjectTwo;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                SWIFT_EMIT_LOC_STRINGS = YES;
                                SWIFT_VERSION = 5.0;
 /* End XCBuildConfiguration section */
 
 /* Begin XCConfigurationList section */
-               E7F55F5A27F2E26100A63CCF /* Build configuration list for PBXProject "app.GameProjectTest" */ = {
+               E7F55F8627F4271800A63CCF /* Build configuration list for PBXProject "app.GameProjectTest" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
-                               E7F55F7027F2E26200A63CCF /* Debug */,
-                               E7F55F7127F2E26200A63CCF /* Release */,
+                               E7F55F9C27F4271900A63CCF /* Debug */,
+                               E7F55F9D27F4271900A63CCF /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
-               E7F55F7227F2E26200A63CCF /* Build configuration list for PBXNativeTarget "app.GameProjectTest" */ = {
+               E7F55F9E27F4271900A63CCF /* Build configuration list for PBXNativeTarget "app.GameProjectTest" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
-                               E7F55F7327F2E26200A63CCF /* Debug */,
-                               E7F55F7427F2E26200A63CCF /* Release */,
+                               E7F55F9F27F4271900A63CCF /* Debug */,
+                               E7F55FA027F4271900A63CCF /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
 /* End XCConfigurationList section */
        };
-       rootObject = E7F55F5727F2E26100A63CCF /* Project object */;
+       rootObject = E7F55F8327F4271800A63CCF /* Project object */;
 }
index 3e701cd..c56743c 100644 (file)
@@ -2,6 +2,6 @@
 <Workspace
    version = "1.0">
    <FileRef
-      location = "self:/Users/alan/Projects/GameProjectTest/app.GameProjectTest.xcodeproj">
+      location = "self:/Users/alan/Projects/GameProjectTwo/app.GameProjectTest.xcodeproj">
    </FileRef>
 </Workspace>
index 35a1ff4..fba0437 100644 (file)
Binary files a/app.GameProjectTest.xcodeproj/project.xcworkspace/xcuserdata/alan.xcuserdatad/UserInterfaceState.xcuserstate and b/app.GameProjectTest.xcodeproj/project.xcworkspace/xcuserdata/alan.xcuserdatad/UserInterfaceState.xcuserstate differ
index 28be669..8d9ce7a 100644 (file)
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Bucket
-   uuid = "2251317E-20FD-4642-8C8D-4FF340A7B7CD"
+   uuid = "BE0980EC-7743-4AFE-8853-F2C9CDDD7D8B"
    type = "1"
    version = "2.0">
    <Breakpoints>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
-            uuid = "23D4FC35-CE66-433E-BDF1-2557C16E8C60"
+            uuid = "C34A125F-8163-4D72-B0FA-915AD165CE22"
             shouldBeEnabled = "Yes"
             ignoreCount = "0"
             continueAfterRunningActions = "No"
-            filePath = "GameProjectTest/GameViewController.swift"
+            filePath = "GameProjectTwo/GameViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "54"
-            endingLineNumber = "54"
-            landmarkName = "viewDidLoad()"
-            landmarkType = "7">
+            startingLineNumber = "8"
+            endingLineNumber = "8"
+            landmarkName = "unknown"
+            landmarkType = "0">
          </BreakpointContent>
       </BreakpointProxy>
    </Breakpoints>
index 2399452..3eefc80 100644 (file)
@@ -4,7 +4,7 @@
 <dict>
        <key>SchemeUserState</key>
        <dict>
-               <key>GameProjectTest.xcscheme_^#shared#^_</key>
+               <key>GameProjectTwo.xcscheme_^#shared#^_</key>
                <dict>
                        <key>orderHint</key>
                        <integer>0</integer>