gpt4 book ai didi

ios - SpriteKit游戏: Moving Gameplay View

转载 作者:行者123 更新时间:2023-11-30 12:32:03 25 4
gpt4 key购买 nike

enter image description here

我目前正在使用图 block 编辑器开发 SpriteKit 游戏。我有一个如下所示的 map ,其中包含 GameScene 场景 (.sks)。目前,它看起来像吃 bean 人游戏。如上图所示,游戏角色停留在游戏画面的中央。当用户触摸屏幕时,游戏角色将通过 touchesBegan 移动到该触摸点。并且摄像机将跟随游戏角色。目前,我有以下内容。

enum GameStatus: Int {
case waiting = 0
case playing = 1
case pausing = 2
case gameOver = 3
}

class GameScene: SKScene, SKPhysicsContactDelegate {
// MARK: - Variables
var background: SKTileMapNode! // background
var player: SKNode! // player
let cameraNode = SKCameraNode() // cameraNode

// MARK: - DidMove
override func didMove(to view: SKView) {
setupNodes()
setupCamera()
}

// MARK: - Node set up
func setupNodes() {
// background //
background = childNode(withName: "World") as! SKTileMapNode

player = childNode(withName: "heroPlaying")
player.physicsBody = SKPhysicsBody(circleOfRadius: 16)
...

// game state //
gameState = GameStatus.playing
}

// MARK: - Camera
func setupCamera() {
cameraNode.position = player.position
addChild(cameraNode)
camera = cameraNode
}
// MARK: - Camera

// MARK: - Update
override func update(_ currentTime: TimeInterval) {
if gameState == .playing {
updateCamera()
}
}

func updateCamera() {
camera?.position = player.position
//camera?.position = CGPoint(x: player.position.x - 192, y: player.position.y - 192)
}
}

实际上,我只想部分显示游戏屏幕,以便显示一些统计数据,例如生命数和金币数。那么我如何移动游戏屏幕,以便可以使用剩余区域在左侧和底部显示统计数字?谢谢。

enter image description here

最佳答案

您可以简单地向相机添加一个约束,使其与玩家的距离保持为 0。然后对于您的 GUI,将所有这些节点作为相机的子节点。这样,无论你对它做什么,GUI 都会跟随相机(即使缩放也不会影响它)。

约束示例:

func setupCamera() {
let distanceConstraint = SKConstraint.distance(SKRange(constantValue: 0), to: playerNode)
cameraNode.constraints = [distanceConstraint]
}

关于ios - SpriteKit游戏: Moving Gameplay View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43403752/

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