问题标签 [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 回答
162 浏览

swift - spritekit 如何选择性地缩放节点

作为背景,假设我有一张地图——实际上是一张在我的 SKScene 中呈现的路线图。道路由 SKShapenodes 表示,其路径设置为 CGPoints 数组。我希望用户能够放大/缩小,所以我创建了一个相机节点:

并且当用户想要通过在触控板上滚动来放大/缩小:

这很好用,但是我有一个额外的复杂性,我不确定如何处理。我希望某些节点(例如道路名称标签、图标、地图图例)免于缩放 - 这样当用户放大/缩小时,道路名称标签保持相同大小,而道路形状按比例缩放。

不知道如何处理?我可以有一个场景层次结构,所以一层缩放而另一层不缩放?这可以通过将相机节点附加到“可扩展”层来实现吗?任何帮助表示赞赏!

0 投票
1 回答
208 浏览

ios - Spritekit 相机节点缩放但固定在场景的底部

我有一个缩放为 1 的相机节点。当我运行游戏时,我希望它缩小(即缩小)但将“地板”保持在底部。我将如何将相机节点固定到场景的底部并有效地“向上”放大(难以解释)。所以场景的底部保持在底部,但其余部分缩小。

我尝试过 SKConstraints 但没有任何运气(我在 SpriteKit 很新)

然后调用函数:

(这是我正在关注的教程中的代码)“setConstraints”函数是 SKCameraNode 的扩展

我不确定这会给我正确的输出,但是当我运行代码进行缩放时,它只是从中间缩放并显示场景 .sks 文件的周围区域。

这是缩放 gameCamera 的代码

编辑:下面的答案几乎是我想要的,这是我更新的答案:

0 投票
1 回答
22 浏览

xcode - Player / CameraNode 位置问题

我有一个camerNode位置问题。我已经包含了下面的代码+尝试解决这个问题而没有任何进展。本质上,在我的 GameScene 中,当在场景中移动时,我将相机完美锁定在玩家身上,我实际上正在尝试修改这一点,以便相机稍微领先玩家,这意味着我的玩家实际上位于左侧屏幕,几乎就像一个偏移量 (+ 200) :) 如果存在的话。

编码:

}

我最初认为我可以通过将播放器更改为另一个 SKSpriteNode 来克服这个问题。即在我的 HUD 类中,我可以添加一个节点并应用此代码?然后我可以参考我的播放器类,其中我已经在覆盖函数 didMove 上方定义了位置。

我确实尝试过这个并且GameScene开始播放,有没有更好的方法来实现这个结果?我认为可以更改代码以适应,但我仍在学习 Xcode。

0 投票
1 回答
78 浏览

ios - 离机时SKTileMapNode消失,不再出现

我有一个使用平铺地图作为背景的 SpriteKit 平台游戏。有问题的背景位于主要内容上方 1 个屏幕高度(位于屏幕外),充当玩家上方的森林树冠。我以编程方式完成,如下所示:

一个摄像机节点跟随玩家。

问题:如果玩家跳起来,SKTileMapNode当他下来时消失。它永远不会再次出现。它的父节点 ,container仍然可见,所以我认为问题出在SKTileMapNode, 而不是container.

我尝试了什么: 我尝试了以下方法,并检查了数字 2-5 SKTileMapNode

  1. 设置view.shouldCullNonVisibleNodes = false
  2. 检查alpha值。它总是1.0
  3. 检查position. 它总是CGPoint(x: 0, y: 0)
  4. 检查anchorPoint. 它总是CGPoint(x: 0.5, y: 0.5)
  5. 检查zPosition. 它不会改变,并且没有其他节点可以遮盖它SKTileMapNode或其父节点。设置更高的值对问题没有影响。
  6. 检查是否container仍然可见。确实如此。

关于剔除: 似乎问题应该与剔除有关,但设置view.shouldCullNonVisibleNodes=false对情况没有影响。我还检查以确保SKTileMapNode始终作为container. 这是。我想这意味着该节点没有被剔除。但是,如果我将其定位container为始终屏幕上,则根本不会出现问题;SKTileMapNode遗骸可见。这让我很困惑,因为这些似乎是相互矛盾的事实。

在设备上: 至少使用模拟器,问题不会出现在 SE 和 iPhone 8 等旧款 iPhone 上。它只会出现在 iPhone 11 和 iPhone 12 等较新的 iPhone 上。 iPhone 11,我可以确认问题也发生在真实设备上。

问题:为什么我SKTileMapNode在离机时消失了(即使禁用了剔除)?如何保持此节点可见?

谢谢!

0 投票
2 回答
190 浏览

ios - 放大和缩小 SpriteKit 场景的数学

使用这些作为指南:

SpriteKit 捏缩放相机

SpriteKit-如何放大和缩小 SKScene?

我已经实现了以下功能来放大和缩小 SpriteKit 场景,以及使用两个 UIButton 逐步放大和缩小场景的能力:

捏缩放效果很好;我在放大和缩小时遇到了麻烦,但是……出于某种原因将比例设置inf-inf

数学不是最好的;任何帮助表示赞赏!

编辑:

更新逻辑: