SpriteKit Spiel: Bewegen Gameplay anzeigen
Ich bin derzeit auf ein mit einem Kachel-Editor SpriteKit Spiel arbeiten. Und ich habe eine Karte wie die folgende mit einer GameScene-Szene (.sks) gezeigt. Fürs Erste sieht es wie das PacMan-Spiel aus. Wie oben gezeigt, bleibt der Spielcharakter in der Mitte des Spielbildschirms. Wenn der Benutzer den Bildschirm berührt, bewegt sich der Spielcharakter dank touchesBegan
zu diesem Berührungspunkt. Und die Kamera wird dem Spielcharakter folgen. Für jetzt habe ich folgendes.
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)
}
}
Actuall, ich will nur das Spiel Bildschirm teilweise zeigen, so dass ich einige Statistiken wie die Anzahl der Leben und Münzen anzeigen. Wie kann ich den Spielbildschirm so verschieben, dass ich den verbleibenden Bereich für die Anzeige von Statistiknummern links und unten verwenden kann? Vielen Dank.
Danke für den Tipp. Wie stelle ich eine Beschränkung auf die Kamera ein? –
Danke. Es klingt wie ein nützlicher Tipp. Aber ich weiß nicht, wie diese Magie 0 ins Spiel kommt. Es scheint, dass es ein SKRange-Objekt sein soll. –
Es ist die Entfernung zwischen den Knoten. Sie geben ihm eine Entfernung und ein Ziel, und Sie ordnen die Einschränkung dem Beschränkungsarray des Knotens zu, den Sie begrenzen möchten, in diesem Fall der Kamera. Die 0 selbst ist ein Fehler, den ich sofort beheben werde, weil Sie tatsächlich einen Bereich angeben können, der einige glatte Kameraeffekte ergeben könnte. aber um es dem Player-Knoten perfekt folgen zu lassen, werfen Sie einen Blick auf den Edit. – BadgerBadger