【问题标题】:Spritekit Swift game menu zooms in the screenSpritekit Swift 游戏菜单放大屏幕
【发布时间】:2015-12-17 02:56:14
【问题描述】:

我使用 SpriteKit 和 Swift 创建了一个游戏,处于最后阶段。我在另一个名为 MenuScene.swift 的场景中为它创建了一个菜单,并且我放置了一个按钮,以便当您单击它时,它会指向存储我的游戏的 GameScene.swift 文件。但是,每当我单击从菜单转到开始游戏的按钮,它放大了我的游戏并完全破坏了界面。我怎样才能解决这个问题?这是我的相关视图控制器编码:

class GameViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    let sceneView = view as! SKView
    // sceneView.showsFPS = true
    // sceneView.showsNodeCount = true
    sceneView.ignoresSiblingOrder = true

    let scene = MenuScene(size: view.bounds.size)
    scene.scaleMode = .ResizeFill
    sceneView.presentScene(scene)
    }

这是我的菜单场景:

import Foundation
import UIKit
import SpriteKit

let buttonTexture = SKTexture(imageNamed: "play")

let button = SKSpriteNode(texture: buttonTexture)

class MenuScene: SKScene {

override func didMoveToView(view: SKView) {

    button.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))

    self.addChild(button)
}

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
    for touch: AnyObject in touches {

        let location = touch.locationInNode(self)

        if button.containsPoint(location) {

            startGame()

        }

    }
}

private func startGame() {
    let gameScene = GameScene(size: view!.bounds.size)
    let transition = SKTransition.fadeWithDuration(0.15)
    view!.presentScene(gameScene, transition: transition)
    gameScene.scaleMode = .AspectFill
    }
}

【问题讨论】:

  • 你能发布一些你的代码吗?
  • @Icy 您应该从视图控制器发布代码,以及您转换到 GameScene 的代码(从 MenuScene 到 GameScene)。
  • 我添加了代码,但由于某种原因,它的一部分被截断为普通文本。

标签: ios swift sprite-kit swift2 ios9


【解决方案1】:
self.scene?.size = self.view!.bounds.size

在 GameScene.swift 中的 didMoveToView 中

【讨论】:

  • 这与加载GameScene的方向有关。如果您将模拟器设置为横向,然后构建应用程序,我想这就是您想要的结果?
  • 我的模拟器在横向运行,因为我的游戏是平台游戏
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多