- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个简单的 SpriteKit
游戏。我有一个从屏幕底部中心开始的播放器。我在 GameScene
中添加了一个摄像头来跟踪玩家,但它不起作用。当我使用以下代码运行它时:
class GameScene: SKScene {
let mPlayer = Player(circleOfRadius: 45, fillColor: myColors.blue, strokeColor: myColors.red)
let cameraNode = SKCameraNode()
override func didMove(to view: SKView) {
setup()
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
moveCamera()
Player.movePlayerUp(mPlayer: mPlayer)
}
func setup(){
mPlayer.position = CGPoint(x: self.frame.midX - PLAYER_WIDTH, y: self.frame.minY + PLAYER_HEIGHT)
self.camera?.position = mPlayer.position
self.camera = cameraNode
self.addChild(cameraNode)
self.addChild(mPlayer)
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
let location = touch.location(in: self)
mPlayer.run(SKAction.moveTo(x: location.x, duration: 0.1))
}
}
func moveCamera(){
let moveAction = SKAction.moveTo(y: mPlayer.position.y, duration: 0.1)
cameraNode.run(moveAction)
}
}
如何让摄像机从一开始就跟随玩家并随着它移动到顶部?希望我的问题很清楚,并对图片的大小表示歉意。
最佳答案
此代码在空的 Xcode 项目中适用于我。您可能认为这不是因为您的背景图像是 1 种颜色,并且您只是短暂地移动播放器。
此外,在更新方法中,您设置将玩家不断移动到中间,这是没有必要的。
尝试在背景中添加一些条纹,以便更容易看到您是否移动,而不是将此代码添加到更新方法中,让玩家不断地缓慢向上移动。
let action = SKAction.move(by: CGVector(dx: 0, dy: 5), duration: 1)
mPlayer.run(action)
您将看到摄像机正确跟随玩家。
如果您需要以不同的方式将相机置于玩家的中心,例如在 y 轴上,则只需增加/减少相机的 y 位置即可。
let moveAction = SKAction.moveTo(y: mPlayer.position.y + 200, duration: 0.1)
cameraNode.run(moveAction)
希望这有帮助
关于swift - SKCameraNode 工作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166331/
我正在尝试创建一个简单的 SpriteKit 游戏。我有一个从屏幕底部中心开始的播放器。我在 GameScene 中添加了一个摄像头来跟踪玩家,但它不起作用。当我使用以下代码运行它时: class G
我正在使用带有 SKTileMapNode 和 SKCameraNode 的 SpriteKit 来处理 Swift 4。我希望能够使用相机在平铺 map 节点上平移/捏合/缩放。我的平移效果很好,但
我目前正在尝试制作一款“启动(呃)游戏”,即使用 SpriteKit 的 Toss the turle、Learn to fly 和 Burrito Bison 风格的游戏。我已经使用 SpriteK
我正在使用 Swift 3、Xcode 和 SpriteKit 我有一个名为 cam 的 SKCameraNode,我在相机位置放置了一个节点来检查它: var cam: SKCameraNode!
我有一个 SpriteKit 场景,其中背景 (SKSpriteNode) 的大小是场景帧的 2 倍。我添加了一个摄像头,当用户用手指平移和捏合时,它会四处移动。我实现了缩放和平移,但是,我需要相机不
由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“*** -[NSKeyedUnarchiver debugObjectForKey:
我目前正在尝试让我的相机在玩家移动时跟随我的玩家“球体”。我已将相机的位置设置为在球体移动时移动到球体的 x 位置,但是由于某种原因,当球体快速移动时,SKCameraNode 会出现故障和卡顿,就好
我试着在我的 SpriteKit 场景中创建一个相机节点,如下所示: self.camera = SKCameraNode() 它失败了(self.camera 然后是 nil)。在我尝试之前这很奇怪
我的 iOS 游戏使用 SpriteKit。我在场景中有一个相机节点。 var cam = SKCameraNode() self.camera = cam //THIS WORKS, view zo
在我的游戏中,我不能真正使用 CameraNode,因为它会搞砸一切的外观和移动方式。我的播放器沿 x 轴移动,我在 update() 函数中设置了这个: if player.position.x
我目前正在开发一款滚动平台游戏,我想知道如何让操纵杆对象随着屏幕移动但仍然可用。我尝试了很多东西,但都没有产生任何可行的选择。目前,操纵杆可用,但会与 map 的其余部分一起滚出屏幕。 这是我的代码:
我正在使用 Apple 提供的 DemoBots 示例来处理我的第一个 SKCameraNode。我在 X 轴上有约束,但在 Y 轴上没有。我在顶部有间隙,即使我将它约束到最大和最小高度。 此外,我的
好的,目前我已将相机编码到我的项目中。我将我的背景添加到游戏中,但它目前没有移动。但是,我想添加更多不受相机影响的东西,例如地面。 这是我当前的代码: background.position = C
我在 iOS 应用程序中使用 SpriteKit,并尝试在覆盖的 didMoveToView 方法中初始化我的 SKScene 的 camera 属性。如果我像这样初始化它: override fun
我一直在试验 SKCameraNode,但我找不到任何关于用它创建视差效果的信息。 假设我在上面的代码中添加了一个 behindNode 在我的 baseNode 下面。然后我为相机设置动画。 let
假设: 你有一个SKSpriteNode,节点,它正在做自己的事情 您已经实现了一个SKCameraNode,cam,来决定玩家可以看到什么 节点具有以下功能: func onScreen(camer
当我用我的代码滚动浏览这个场景时,它看起来非常有问题。一切都很快地跳来跳去,直到你放手。有更好的方法吗? var lastTouch: CGPoint! override func touchesBe
我试图将游戏 handle Controller 固定到我的相机节点的左下角,但是当我将该节点添加为我的相机的子节点时它没有显示? let gameCamera = SKCameraNode() va
我在 Xcode 8 beta 4 上使用 Sprite Kit 关卡编辑器开发了一款通用游戏。 我在关卡编辑器中的场景是 750x3334。在我的场景中,我有一张背景图片,背景图片会根据场景大小进行
我在我的 GameScene 类中创建了一个 SKCameraNode,并将按钮添加到它作为 SKSpriteNodes。然后我将 GameScene 相机设置为 SKCameraNode。 我有另一
我是一名优秀的程序员,十分优秀!