我正在建立一个平台游戏,当他走路时我让相机跟随玩家:
let cam = SKCameraNode()
override func didMoveToView(view: SKView) {
self.camera = cam
...
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
cam.position = Player.player.position
...
Run Code Online (Sandbox Code Playgroud)
我该怎么办才能使控制按钮保持静止?
ric*_*ter 12
请参阅SKCameraNode文档中的此注释:
相机的后代始终相对于相机节点的原点进行渲染,而不会将相机的缩放或旋转应用于它们.例如,如果您的游戏想要在游戏玩法之上显示分数或其他数据,则呈现这些元素的节点应该是当前相机节点的后代.
如果您希望HUD元素相对于屏幕保持固定,即使相机移动/缩放/旋转,也要使它们成为相机的子节点.
顺便说一下,你不需要改变相机的位置update().相反,只需约束相机的位置以匹配播放器的位置:
let constraint = SKConstraint.distance(SKRange(constantValue: 0), toNode: player)
camera.constraints = [ constraint ]
Run Code Online (Sandbox Code Playgroud)
然后,SpriteKit会自动将相机保持在播放器的中心位置,而不需要任何每帧工作.您甚至可以添加多个约束 - 例如,跟随播放器,但不要让相机太靠近世界边缘(并显示空白区域).
| 归档时间: |
|
| 查看次数: |
954 次 |
| 最近记录: |