gpt4 book ai didi

ios - 玩家与物体碰撞时如何更改 View Controller ?

转载 作者:可可西里 更新时间:2023-11-01 02:20:22 25 4
gpt4 key购买 nike

当您的播放器与对象发生碰撞时,我无法弄清楚如何更改 View Controller 。

我想弹出一个菜单,显示一个菜单按钮和一个重播按钮,还有一些此时不重要的额外按钮。我不确定其中一些游戏结束菜单是如何制作的,我正在考虑切换 View Controller ,如果您确切知道它们是如何制作的,请告诉我。

这是我目前的代码,它唯一做的就是显示一个标签,表明游戏已经结束,当点击该标签时,游戏将重新开始:

import Foundation
import AVFoundation
import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {

var movingGround: PPMovingGround!
var square1: PPSquare1!
var wallGen: PPWallGen!
var diamondGen: PPDiamondGen!

var isStarted = false
var isGameOver = false
var isDiamondContact = false

var playerNode: SKNode!

override func didMoveToView(view: SKView) {

//code that is not important was deleted
func collisionWithDiamond() {
isDiamondContact = true
}

func restart() {

let newScence = GameScene(size: view!.bounds.size)
newScence.scaleMode = .AspectFill

view!.presentScene(newScence)
}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
if isGameOver {
restart()

} else {
square1.flip()
}
}

override func update(currentTime: CFTimeInterval) {

}

// MARK: - SKPhysicsContactDelegate
func didBeginContact(contact: SKPhysicsContact) {

if !isGameOver {
gameOver()
} else {
!isDiamondContact
collisionWithDiamond()
}
}

注意:我删除了不相关或不必要的代码。


更新:

游戏玩法链接:https://www.youtube.com/watch?v=WUibTETfEQY

跳到 2:32 查看游戏结束

游戏结束画面的链接:Image

(我无法在此处发布图片,因为我还没有达到要求的 10 个代表点数。)

最佳答案

//编辑后的答案

这将是最简单的。创建一个新的 GameOverScene.swift,它是一个 SKScene。然后使用背景图像自定义该场景,按钮​​使用 SKLabelNodes。结帐creating buttons in skview to point to different scenes

当游戏在GameScene中结束时,

let gameOverScene: GameOverScene = GameOverScene(size: self.size)
self.view!.presentScene(gameOverScene, transition: SKTransition.doorsOpenHorizontalWithDuration(1.0))

这是一个实现了这个的项目,http://www.raywenderlich.com/76741/make-game-like-space-invaders-sprite-kit-and-swift-tutorial-part-2

//第一个答案---------------------------------------- ----

如果你想切换 viewController,你必须像这样或使用 segue 来呈现新的 viewController,

self.view?.window?.rootViewController?.presentViewController(newView, animated: true, completion: nil)

self.view?.window?.rootViewController?.performSegueWithIdentifier("id", sender: AnyObject)

否则创建一个SKView并添加按钮,然后在游戏结束时将其添加到场景中或之前添加它,隐藏它,然后显示它。一旦用户选择了一个选项,将其删除或隐藏,

SKView.hidden = false
SKView.hidden = true

添加SKView,

self.view?.addSubview(SKView)

简单的 SKView 覆盖,

let view1 = SKView(frame: CGRectMake(0, 0, 200, 200))
view1.center = self.view!.center
self.view?.addSubview(view1)

关于ios - 玩家与物体碰撞时如何更改 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com