//
// 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()
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
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