问题标签 [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.
ios - SpriteKit:场景中的静态背景,带有移动的 SKCameraNode
我的目标是在SKScene
. 在这个场景中,我SKCameraNode
会根据需要进行平移。
背景节点必须是静态的,因为它呈现的是远距离的天空,预计不会移动。
问题:
如果我只是将背景节点作为子节点添加到场景中,我将不得不以与相机平移相同的方式移动背景,以使背景在相机视口内始终完全可见。我不想这样做,因为背景节点应用了一些视觉效果和过滤器,因此移动它会导致性能下降。
我想要的是在背景中布置背景作为静态节点或视图,不必为了“跟随”相机而移动它。
我尝试了什么:
我知道可以将节点添加为子节点,SKCameraNode
以确保它跟随相机。但正如 Apple 所暗示的,这对于通常呈现在所有内容之上的 HUD 元素(如乐谱标签等)很有用。如果您想添加背景,这当然不适用,因为我希望它在背景中,在作为子节点直接添加到场景中的节点后面。
尽管如此,我尝试将背景节点作为子节点添加到相机节点并使用 z 位置和类似的东西,但没有任何帮助,正如预期的那样。
我还尝试将背景作为子视图添加到根目录SKView
,但由于某种原因我无法在场景后面渲染它。
提前致谢。
ios - SpriteKit SKCameraNode 无法动画缩放
对于我使用 SpriteKit 的 iOS 游戏。我在场景中有一个相机节点。
ios - 将 SKCameraNode 用于通用应用程序 SWIFT
我在 Xcode 8 beta 4 上使用 Sprite Kit Level 编辑器开发了一款通用游戏。
我在关卡编辑器中的场景是 750x3334。在我的场景中,我有一个背景图像,背景图像被调整为场景大小。
场景锚点 = (0,1) 左上角
背景锚点 = (0,1) 左上角。
我需要在我的场景中安装一个相机。
我设置了一个比例为 (1,1) 的 SKCameraNode,相机的位置是我场景的中心。
创建场景:
当游戏启动时,我的相机必须设置为背景的顶部等于设备的顶部边缘。
要做到这一点:
对于 iPhone 6,它可以完美运行。对于 iPhone 5、6+,我在顶部边缘有一个空白区域(场景外)。
所以也许我的逻辑是错误的......
ios - 缩放(缩放)CameraNode 滞后超时
我正在使用 Swift 3.0,并且正在尝试将 SKCameraNode 类用作我的游戏的相机。
我经常移动、旋转和放大和缩小它。出于某种原因,它会进出这些粗糙的补丁(大约 30 秒),因为它是超级蚀刻的,好像它只更新了正常时间的十分之一。请注意,除了摄像机移动之外,游戏中没有其他任何东西是滞后的。
然而,这只有在我尝试放大和缩小时才会非常明显。
这种情况通常发生在大量移动它之后,但并非总是如此。有时它会在应用程序启动的那一刻发生,而其他时候则不会。
这是我的代码,它在didFinishUpdate中运行:
时间通常是 0.0,但有时不是,所以如果可能的话,我想尝试将其保留为 SKAction。但是,我认为问题在于使用此 SKAction。(我 99% 确定问题不在于我不小心没有超过 0.0 的时间)
那么我应该怎么做才能解决或解决这个问题呢?这只是 Swift 的限制吗?
编辑:我现在也尝试在其他更新功能中使用它。我还测试了 didFinishUpdate 的运行时间(看它是否滞后),但它保持一致。此外,当我尝试旋转相机时也会发生这种情况。另一个编辑:我还尝试将 gamePhysics 速度设置为 0.9999,这是在另一篇有滞后问题的帖子中建议的
谢谢!
swift - 缩放和替换节点的最佳方法是什么?
我正在使用 Swift 3、SpriteKit 和 Xcode。
所以我有一个名为 backgroundNode 的节点,我将游戏的每个节点都附加到这个 backgroundNode。
现在我希望能够通过捏合手势来放大我的游戏,并且当我放大以在我的游戏中导航时。
我看到了两种可能性:
- 替换背景节点并更改其比例以放大和缩小,
- 使用 SKCameraNode
你认为最好的选择是什么?
我已经尝试过第一个选项,但是缩放手势非常复杂,就像我想缩放时将背景节点向上缩放一样,锚点位于 0;0 而不是 0.5;0.5 所以它不会在检测到捏合手势的地方缩放,但从右下角,我不知道你是否明白我的意思。
对于第二个选项,我无法在没有故障效果的情况下移动相机,也许我的代码是错误的,但它看起来确实是正确的。
你能帮助我吗 ?
编辑:所以我使用SKCameraNode
and让它工作UIPanGestureRecognizer
,这里是代码:
现在我正在努力使用Zoom。我尝试使用UIPinchGestureRecognizer
,但效果不如平移手势,这是我尝试过的:
你会怎么做?
swift - 如何使节点不受 SKCameraNode 影响?
好的,所以目前我有一个相机编码到我的项目中。我将我的背景添加到游戏中,但它目前没有移动。但是,我想添加更多不受相机影响的东西,例如地面。
这是我当前的代码:
我上面的代码只允许我将项目居中,但不会让我把它放在我想要的某个点。我怎样才能做到这一点?
ios - SpriteKit:如何在跟踪节点但仅在节点移动 Y 像素之后平滑地为 SKCameraNode 设置动画?
这个问题和其他问题讨论了如何使用 SKCameraNode 跟踪 SpriteKit 中的节点。
但是,我们的需求各不相同。
其他解决方案,例如更新update(_ currentTime: CFTimeInterval)
SKScene 中的相机位置,不起作用,因为我们只想在节点将 Y 像素向下移动到屏幕后调整相机位置。
换句话说,如果节点向上移动 10 个像素,相机应该保持静止。如果节点向左或向右移动,相机应该保持静止。
我们尝试随着时间的推移而不是立即为相机的位置设置动画,但是对内部的相机运行 SKActionupdate(_ currentTime: CFTimeInterval)
无法执行任何操作。
swift - 如何使节点不受 SKCamera 影响
好吧,在我的游戏中,我目前有一个可以在屏幕上四处乱扔的球。此外,SKCamera 也随之移动(如下所示)。但是,我想确保某些节点不受相机影响,并保持在屏幕上的确切位置。例如,假设我在屏幕的右下角有一个接地节点。当球被抛出时,我总是希望那个地面留在屏幕的右下角,而不是在 SKCamera 移动时离开屏幕。