Ich versuche, die richtige Größe einer Unteransicht (SKView
) zu erhalten/einzustellen.So skalieren Sie SKView Unteransicht und SKScene richtig
Ich verwende das Storyboard, um eine UIView
und eine Unteransicht zu erstellen, die eine SKView
ist. Ich möchte programmgesteuert ein SKScene
mit den Abmessungen des SKView
erstellen.
Mein Gedanke ist, dass scene.size.height
und scene.size.width
gleich der Höhe und Breite des SKView sind. Um das zu testen, zeichne ich vier blaue Kreise in jeder Ecke und rote Linien an den Rändern. Ich kann nur die linke untere Ecke sehen, wenn ich alle vier blauen Eckpunkte und Boarderlinien erwarte.
Bitte ignorieren Sie die schwarzen Kreise in der Szene, sie sind irrelevant.
iPhone 6 Screenshot (Portrait)
iPhone 6 Screenshot (Landschaft)
I hinzugefügt SW (South West), SE, NE und NW-Etiketten
ViewController mit SKView Referenz Dies ist, wo ich die SKSCene
(siehe func newGame
)
import UIKit
import SpriteKit
class CenterView: UIViewController, ActionDelegate {
@IBOutlet weak private var navBar:UINavigationBar!
@IBOutlet weak private var titleBar:UINavigationItem!
@IBOutlet weak private var gameView:SKView!
var navigation:NavigationDelegate?
var action:ActionDelegate?
var game:GameDelegate?
override func viewDidLoad() {
super.viewDidLoad()
self.action = self
newGame()
}
@IBAction func menuClick(sender: AnyObject) {
navigation?.toggleLeftPanel()
}
func setTitleBarTitle(title: String) {
titleBar.title = title
}
func newGame() {
print("skview bounds: \(self.gameView.bounds.size)")
let game = GameScene(size: self.gameView.bounds.size)
self.game = game
game.action = action
game.scaleMode = .ResizeFill
self.gameView.presentScene(game)
}
}
Constraints
erstellenHinzufügen Corner Kreise & Grenzlinien
if let scene = self.scene {
let dot = SKShapeNode(circleOfRadius: 10)
dot.fillColor = UIColor.blueColor()
dot.position = CGPoint(x: 0,y: 0)
let dot1 = SKShapeNode(circleOfRadius: 10)
dot1.fillColor = UIColor.blueColor()
dot1.position = CGPoint(x: scene.size.width,y: 0)
let dot2 = SKShapeNode(circleOfRadius: 10)
dot2.fillColor = UIColor.blueColor()
dot2.position = CGPoint(x: 0,y: scene.size.height)
let dot3 = SKShapeNode(circleOfRadius: 10)
dot3.fillColor = UIColor.blueColor()
dot3.position = CGPoint(x: scene.size.width,y: scene.size.height)
let left = SKShapeNode(rect: CGRect(x: 0, y: 0, width: 3, height: scene.size.height))
let top = SKShapeNode(rect: CGRect(x: 0, y: scene.size.height, width: scene.size.width, height: 3))
let right = SKShapeNode(rect: CGRect(x: scene.size.width, y: 0, width: 3, height: scene.size.height))
let bottom = SKShapeNode(rect: CGRect(x: 0, y: 0, width: scene.size.width, height: 3))
left.fillColor = UIColor.redColor()
top.fillColor = UIColor.redColor()
bottom.fillColor = UIColor.redColor()
right.fillColor = UIColor.redColor()
scene.addChild(dot)
scene.addChild(dot1)
scene.addChild(dot2)
scene.addChild(dot3)
scene.addChild(left)
scene.addChild(top)
scene.addChild(right)
scene.addChild(bottom)
}