问题标签 [skcameranode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
948 浏览

ios - SpriteKit:场景中的静态背景,带有移动的 SKCameraNode

我的目标是在SKScene. 在这个场景中,我SKCameraNode会根据需要进行平移。

背景节点必须是静态的,因为它呈现的是远距离的天空,预计不会移动。

问题

如果我只是将背景节点作为子节点添加到场景中,我将不得不以与相机平移相同的方式移动背景,以使背景在相机视口内始终完全可见。我不想这样做,因为背景节点应用了一些视觉效果和过滤器,因此移动它会导致性能下降。

我想要的是在背景中布置背景作为静态节点或视图,不必为了“跟随”相机而移动它。

我尝试了什么

我知道可以将节点添加为子节点,SKCameraNode以确保它跟随相机。但正如 Apple 所暗示的,这对于通常呈现在所有内容之上的 HUD 元素(如乐谱标签等)很有用。如果您想添加背景,这当然不适用,因为我希望它在背景中,在作为子节点直接添加到场景中的节点后面。

尽管如此,我尝试将背景节点作为子节点添加到相机节点并使用 z 位置和类似的东西,但没有任何帮助,正如预期的那样。

我还尝试将背景作为子视图添加到根目录SKView,但由于某种原因我无法在场景后面渲染它。

提前致谢。

0 投票
2 回答
481 浏览

ios - SpriteKit SKCameraNode 无法动画缩放

对于我使用 SpriteKit 的 iOS 游戏。我在场景中有一个相机节点。

0 投票
2 回答
382 浏览

ios - 将 SKCameraNode 用于通用应用程序 SWIFT

我在 Xcode 8 beta 4 上使用 Sprite Kit Level 编辑器开发了一款通用游戏。

我在关卡编辑器中的场景是 750x3334。在我的场景中,我有一个背景图像,背景图像被调整为场景大小。

  • 场景锚点 = (0,1) 左上角

  • 背景锚点 = (0,1) 左上角。

我需要在我的场景中安装一个相机。

我设置了一个比例为 (1,1) 的 SKCameraNode,相机的位置是我场景的中心。

相机

创建场景:

当游戏启动时,我的相机必须设置为背景的顶部等于设备的顶部边缘。

要做到这一点:

对于 iPhone 6,它可以完美运行。对于 iPhone 5、6+,我在顶部边缘有一个空白区域(场景外)。

解释

所以也许我的逻辑是错误的......

0 投票
0 回答
59 浏览

ios - 缩放(缩放)CameraNode 滞后超时

我正在使用 Swift 3.0,并且正在尝试将 SKCameraNode 类用作我的游戏的相机。

我经常移动、旋转和放大和缩小它。出于某种原因,它会进出这些粗糙的补丁(大约 30 秒),因为它是超级蚀刻的,好像它只更新了正常时间的十分之一。请注意,除了摄像机移动之外,游戏中没有其他任何东西是滞后的。

然而,这只有在我尝试放大和缩小时才会非常明显。

这种情况通常发生在大量移动它之后,但并非总是如此。有时它会在应用程序启动的那一刻发生,而其他时候则不会。

这是我的代码,它在didFinishUpdate中运行:

时间通常是 0.0,但有时不是,所以如果可能的话,我想尝试将其保留为 SKAction。但是,我认为问题在于使用此 SKAction。(我 99% 确定问题不在于我不小心没有超过 0.0 的时间)

那么我应该怎么做才能解决或解决这个问题呢?这只是 Swift 的限制吗?

编辑:我现在也尝试在其他更新功能中使用它。我还测试了 didFinishUpdate 的运行时间(看它是否滞后),但它保持一致。此外,当我尝试旋转相机时也会发生这种情况。另一个编辑:我还尝试将 gamePhysics 速度设置为 0.9999,这是在另一篇有滞后问题的帖子中建议的

谢谢!

0 投票
1 回答
476 浏览

swift - 缩放和替换节点的最佳方法是什么?

我正在使用 Swift 3、SpriteKit 和 Xcode。

所以我有一个名为 backgroundNode 的节点,我将游戏的每个节点都附加到这个 backgroundNode。

现在我希望能够通过捏合手势来放大我的游戏,并且当我放大以在我的游戏中导航时。

我看到了两种可能性:

  • 替换背景节点并更改其比例以放大和缩小,
  • 使用 SKCameraNode

你认为最好的选择是什么?

我已经尝试过第一个选项,但是缩放手势非常复杂,就像我想缩放时将背景节点向上缩放一样,锚点位于 0;0 而不是 0.5;0.5 所以它不会在检测到捏合手势的地方缩放,但从右下角,我不知道你是否明白我的意思。

对于第二个选项,我无法在没有故障效果的情况下移动相机,也许我的代码是错误的,但它看起来确实是正确的。

你能帮助我吗 ?

编辑:所以我使用SKCameraNodeand让它工作UIPanGestureRecognizer,这里是代码:

现在我正在努力使用Zoom。我尝试使用UIPinchGestureRecognizer,但效果不如平移手势,这是我尝试过的:

你会怎么做?

0 投票
1 回答
333 浏览

swift - SKCameraNode 未居中

我正在使用 Swift 3、Xcode 和 SpriteKit

我有一个名为 cam 的 SKCameraNode,我在相机的位置放置了一个节点来检查它:

这就是我得到的:

红线是我的 playableRect 的限制。白色的六边形是相机的位置。我们可以清楚地看到我想要的相机在我的 playableRect 的中心,但通常这个相机应该在屏幕的中心,为什么它在左边?我的意思是,通常我的 cameraNode 应该始终位于屏幕的中心,这似乎是合乎逻辑的。

截屏

你能帮助我吗 ?

0 投票
2 回答
192 浏览

swift - 如何使节点不受 SKCameraNode 影响?

好的,所以目前我有一个相机编码到我的项目中。我将我的背景添加到游戏中,但它目前没有移动。但是,我想添加更多不受相机影响的东西,例如地面。

这是我当前的代码:

我上面的代码只允许我将项目居中,但不会让我把它放在我想要的某个点。我怎样才能做到这一点?

0 投票
1 回答
340 浏览

xcode - SKCamera 节点 - Swift 3

我在我的 swift 3 项目中设置相机时遇到问题。

这是我的场景

这是我的代码

你能帮我弄清楚这里有什么问题吗?即使我在场景编辑器中移动相机,它也不会对我的游戏视图产生任何影响。

非常感谢!

0 投票
2 回答
1423 浏览

ios - SpriteKit:如何在跟踪节点但仅在节点移动 Y 像素之后平滑地为 SKCameraNode 设置动画?

这个问题和其他问题讨论了如何使用 SKCameraNode 跟踪 SpriteKit 中的节点。

但是,我们的需求各不相同。

其他解决方案,例如更新update(_ currentTime: CFTimeInterval)SKScene 中的相机位置,不起作用,因为我们只想在节点将 Y 像素向下移动到屏幕后调整相机位置。

换句话说,如果节点向上移动 10 个像素,相机应该保持静止。如果节点向左或向右移动,相机应该保持静止。

我们尝试随着时间的推移而不是立即为相机的位置设置动画,但是对内部的相机运行 SKActionupdate(_ currentTime: CFTimeInterval)无法执行任何操作。

0 投票
0 回答
96 浏览

swift - 如何使节点不受 SKCamera 影响

好吧,在我的游戏中,我目前有一个可以在屏幕上四处乱扔的球。此外,SKCamera 也随之移动(如下所示)。但是,我想确保某些节点不受相机影响,并保持在屏幕上的确切位置。例如,假设我在屏幕的右下角有一个接地节点。当球被抛出时,我总是希望那个地面留在屏幕的右下角,而不是在 SKCamera 移动时离开屏幕。