我有一个camerNode位置问题。我在下面添加了代码+尝试解决此问题但没有任何进展。本质上,在我的GameScene中,我将摄像机在场景中移动时完美地锁定在播放器上,我实际上是在尝试对此进行修改,以使摄像头稍稍领先于播放器,这意味着我的播放器实际上位于播放器的左侧。屏幕,几乎就像一个偏移量(+ 200):)(如果存在)。
代码:
class GameScene: SKScene, SKPhysicsContactDelegate {
// Create a constant cam as a SKCameraNode:
let cam = SKCameraNode()
override func didMove(to view: SKView) {
// vertical center of the screen:
screenCenterY = self.size.height / 2
// Assign the camera to the scene
self.camera = cam
//Add the camera itself to the scene's node tree"
self.addChild(self.camera!)
// Position the camera node above the game elements:
self.camera!.zPosition = 50
}
override func didSimulatePhysics() {
// Keep the camera locked at mid screen by default:
var cameraYPos = screenCenterY
cam.yScale = 1
cam.xScale = 1
// Follow the player:
if (player.position.y > screenCenterY) {
cameraYPos = player.position.y
cam.yScale = newScale
cam.xScale = newScale
}
// Camera Adjustment:
self.camera!.position = CGPoint(x: player.position.x, y: cameraYPos)
我最初以为可以通过将播放器更改为另一个SKSpriteNode来克服此问题。.在HUD类中,我可以添加一个节点并将其应用于周围?然后,我可以回到我的播放器类中,在该类中,我已经定义了覆盖功能funDidMove之上的位置。
let initialPlayerPosition = CGPoint(x: 50, y: 350)
我确实尝试过此方法,然后GameScene开始播放,是否有更好的方法来实现此结果?我认为可以更改代码以适应这种情况,但是我仍然处于Xcode的学习范围内。
没关系-解决了!
摄像机调整说明-player.position.x + 200):)
这可以解决问题!