我目前正在使用平铺编辑器开发 SpriteKit游戏。我有一张如下图所示的带有 GameScene 场景 (.sks) 的地图。目前,它看起来像 PacMan 游戏。如上图所示,游戏角色停留在游戏画面的中央。当用户触摸屏幕时,游戏角色将移动到该触摸点,这要归功于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)
}
}
实际上,我只想部分显示游戏屏幕,以便显示一些统计数据,例如生命和硬币的数量。那么如何移动游戏屏幕以便我可以使用剩余区域在左侧和底部显示统计数字?谢谢。