问题标签 [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 投票
2 回答
149 浏览

swift - 使用 SKAction 移动时,SKCameraNode.position didSet 不会被触发

我有一个简单的子类SKCameraNode,我称之为InteractiveCameraNode. 现在很简单:当我的相机位置发生变化时,我需要发生一些事情。这是我所做的:

因为当相机移动时我可能会发生多件事情,所以我有一组在相机位置改变时调用的闭包。到目前为止,一切正常,除了didSet如果我使用动作移动相机,观察者不会被调用。如果我在相机上使用约束使其跟踪节点,然后通过动作移动该节点,它就可以工作。如果我用手移动相机,它就可以工作。为什么它不适用于动作?

0 投票
1 回答
539 浏览

ios - 在 Spritekit 中使用限制平滑缩放

我一直致力于通过SKCameraNode捏合识别器向我的项目添加缩放功能。我的相机节点正在俯瞰mainMap包含我的游戏的节点,我希望具有有限的缩放功能。

在我的捏合函数处理程序中,我有以下代码:

我看过许多类似的问题,但他们没有这个确切的问题。当比例接近边界值并变为诸如 之类的值时1.09812164306641,我倾向于对缩放产生口吃效果,因为它似乎无法达到确切的边界值。

有人对如何避免这种行为有建议吗?最有帮助的是解释如何让缩放在达到限制时表现得更自然,它会产生 IOS 应用程序惯用的小反弹效果。真的任何关于如何使用平滑变焦的相机的连贯解释将不胜感激!

谢谢

0 投票
1 回答
82 浏览

swift - Swift:节点离开 SKCameraNode 视图时的事件?

认为:

  • 你有一个SKSpriteNode,节点, 做自己的事
  • 你已经实现了一个SKCameraNode, cam , 来决定玩家可以看到什么
  • 节点具有以下功能:

问题 如何向节点添加事件侦听器,以便当节点从相机视图内转换到相机视图外时,它会触发或调用函数?

看起来有点复杂......

0 投票
2 回答
999 浏览

ios - Swift:定位 SKCameraNode 的子节点

上下文

  • 有一个光标(就像你的鼠标一样)SKSpriteNode
  • cam是 aSKCameraNode并且是光标的子项(即光标所在的位置,因此跟随相机)。
  • cam故意不以光标为中心;相反,它是偏移的,所以光标出现在视图的顶部,下面还有空白空间

下面给出一个简单的示意图 在此处输入图像描述

目标:目标是在相机视图的左下角和右下角添加两个精灵。精灵将是相机的孩子,因此它们始终保持在视野中。

问题

如何将精灵定位在相机的角落,特别是考虑到SKSpriteNode没有anchorPoint属性(通常有SKSpriteNode,这让我将相机作为一个孩子偏移到光标)?

注意:可以将SKSpriteNodes定位在GameScene然后调用.move(toParent: SKNode),这会让你更接近,但也会弄乱SKSpriteNodes的位置和比例

0 投票
1 回答
697 浏览

swift - Swift 3.0:当给定非 SKView 父级时,SKSpriteNode 作为 Button 不起作用?

已经有一些关于如何在 SpriteKit 中制作按钮的问题,例如Swift Spritekit 以编程方式添加按钮在 SKScene 中设置按钮

无论哪种方式,解决方案是为SKSpriteNode按钮制作一个纹理,然后在函数touchesEnded中测试触摸是否落在按钮内SKSpriteNode

然而,有趣的是,如果要将按钮设置为子按钮,例如 aSKCameraNode或 another SKSpriteNode,则此方法不再有效。

我的问题是为什么?以及如何克服这一困境。

更新:

关于下面的帖子,这里有两个简单的 GameScene.swift 文件的替代版本。主要区别在于,在第一种情况下,sprite2它不是相机的孩子,而在版本 2 中它是。

注意:在 gifs 中,请注意在版本 1 中,单击紫色精灵 ( sprite2) 会导致它打印“你轻按了紫色精灵。”,而在版本 2 中它会显示“蓝色精灵”。因此问题很清楚:

点击另一个 SKNode 的子节点注册为点击最上面的父节点,而不是实际点击的节点!

新问题:如何纠正这个问题。

附录:在第 2 版sprite2中,由于成为相机的孩子,位置发生了一些变化——因为它是 MWE,它不会影响这个演示,我选择不更正它。

版本 1

在此处输入图像描述

版本 2

在此处输入图像描述

0 投票
0 回答
204 浏览

ios - SkCamera 节点大小不明确?

我目前正在开发一个带有 SKCameraNode 的 Spritekit 游戏,允许玩家查看战略地图。我正在尝试通过将子节点添加到 SKCameraNode 来实现 HUD,但我遇到了关于如何设置子节点坐标的问题。

我这样初始化我的游戏场景:

在 iPhone 7 上进行测试,我打印 gameScene 大小并获取(375, 667),然后我的相机框架是(667, 375, 0, 0)

但是,在 iPhone SE 上进行测试,我打印了 gameScene 大小并得到了(320, 568)相机框架仍然存在的结果(667, 375, 0, 0)

似乎无论我在什么设备上测试,gameScene 都会发生变化,但相机框架的大小是一样的。这让我无休止地困惑。相机从哪里获取其帧参数?

此外,我可以可靠地使用什么坐标来实际设置 HUD?

感谢任何帮助!谢谢

0 投票
1 回答
167 浏览

ios - SpriteKit 游戏:移动游戏视图

在此处输入图像描述

我目前正在使用平铺编辑器开发 SpriteKit游戏。我有一张如下图所示的带有 GameScene 场景 (.sks) 的地图。目前,它看起来像 PacMan 游戏。如上图所示,游戏角色停留在游戏画面的中央。当用户触摸屏幕时,游戏角色将移动到该触摸点,这要归功于touchesBegan. 并且相机将跟随游戏角色。现在,我有以下内容。

实际上,我只想部分显示游戏屏幕,以便显示一些统计数据,例如生命和硬币的数量。那么如何移动游戏屏幕以便我可以使用剩余区域在左侧和底部显示统计数字?谢谢。

在此处输入图像描述

0 投票
0 回答
51 浏览

ios - 在 Y 轴中心对中 SKcamera

我试图让我的 skcameranode 以场景的 y 轴为中心。(我使用 xcode 和 spritekit 作为游戏技术。

很快,代码将是:cameranode.position.y = size.height / 2 任何想法我如何在目标 c 中做到这一点?

0 投票
1 回答
497 浏览

ios - Swift:类似 Agar.io 的平滑 SKCameraNode 运动?

如果这里的任何人以前玩过 Agar.io,您可能会熟悉相机移动的方式。它会根据鼠标与屏幕中心的距离向鼠标滑动。我正在尝试使用 SKCameraNode 和 touchesMoved 重新创建此动作:

令人惊讶的是,这看起来并不算太糟糕。但是,这样做有两个问题。

第一个是我想为此使用 UIPanGestureRecognizer,因为它在多次触摸时会更好。我只是无法想象如何做到这一点,因为我想不出一种方法来使用它来获得从触摸到屏幕中心的距离。

第二个问题是这种运动并不顺畅。如果用户在一帧内停止移动手指,则会出现巨大的跳跃,因为相机会突然停止。我的数学很糟糕,所以我想不出一种方法来实现一个很好的平滑衰减(或攻击)。

任何帮助都会很棒!

编辑:我现在正在这样做:

我现在需要知道的是一种让差异变量从用户触摸屏幕开始平滑增加的好方法。

编辑2:现在我正在这样做:

有人可以在情况变得更糟之前帮助我吗?fade 变量以一种糟糕的方式递增,而且并不平滑,我只需要有人给我一点提示,告诉我一个更好的方法来做到这一点。

0 投票
1 回答
363 浏览

sprite-kit - 在 SpriteKit 游戏中让无限障碍物向左移动

我有一个 SpriteKit 游戏,里面有一个可以扔和拖的球。当它被抛出时,SKCamera 会跟随它。我想要的如下图所示:

我怎样才能建立这种障碍?