问题标签 [skview]

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 回答
3418 浏览

iphone - 将弧度角转换为 CGVector

使用 Sprite Kit 我试图SKPhysicsBody根据给定的角度设置移动,例如,如果您希望精灵向右移动,您可以指定 1.571 弧度。要将指定的角度转换为速度,我使用以下方法将弧度转换为CGVector. 我从记忆中实现的原始版本具有将所有角度偏移 90 度的奇怪效果。(即,如果使用 0 度,则精灵向右移动(就像您指定 90 度时一样)

问题:

我通过交换dxdy分配在新版本中修复了这个问题。我的问题是为什么会发生这种情况,我在原件中是否有错误(似乎确实有其他人在网络上这样做)或者是否存在基于所使用的特定坐标系的某些原因。

注意:在 Sprite Kit 中,顺时针旋转也是负数,到目前为止convertAngleToVector是正顺时针旋转(即 1.571 弧度是正确的,应该在左边)我可以这样做cos(radians*-1)sin(radians*-1)但是基于我交换 dx 可能有一些潜在的原因和dy。

雪碧套件(SKView 坐标):

在此处输入图像描述

0 投票
2 回答
2963 浏览

ios7 - 将 SpriteKit 视图集成到 xib 视图中

我有一个已经使用 xib 文件创建的视图。

现在我想在这个视图中添加一些小元素,以利用 SpriteKit 中的一些物理动画,所以现在我需要一个 SKView。

是否可以将 SKView 添加为与我的 xib 视图对应的视图的子视图?我试过这个,它似乎没有显示任何东西。

下面是在我的XIB视图对应的ViewController中:

我的自定义 SKView 的 ViewController 有:

0 投票
1 回答
581 浏览

objective-c - 向 SKScene 添加新的 SKSpriteNode 具有较大的间歇性滞后

我有一个标准的 UIViewController ( TestViewController ),在这个控制器的viewWillLayoutSubviews方法中,我实例化了一个新的 SKView 子类 ( TestView ),并将它作为子视图添加到控制器的视图中。此外,我添加了一些按钮,这些按钮旨在让用户控制 SKScene 子类 ( TestScene ) 中的操作。TestScene在TestView的init方法中实例化。在 TestView 作为子视图添加到 TestViewController 的视图之后立即调用[testView presentScene]这是TestView上的一个方法,它只是调用[自我presentScene:testScene]

按下TestViewController上提到的按钮意味着调用TestScene上的一个方法(通过TestView),该方法将实例化一个新的 SKSpriteNode 子类(TestSpriteNode)并将其作为子类添加到场景中。这确实有效,但我的问题是,对于第一个要添加的TestSpriteNode , TestScene呈现新的精灵会间歇性地长时间延迟。有时它可以完美运行,但大多数情况下它会卡住,多次触摸按钮后会同时出现多个精灵,之后一切正常。我应该提到这个问题发生在模拟器和我的设备上。

我尝试在TestScene 的- (void)didMoveToView:(SKView*)view中添加一个新的TestSpriteNode ,导致TestSpriteNode立即出现,然后在按下按钮添加新的TestSpriteNode时出现延迟。通过在TestScene上按下按钮调用的方法添加断点,我可以看到它被立即调用,但添加的TestSpriteNode不会立即呈现。

如果已经有一个解决动态添加的 SKSpriteNodes 渲染延迟的答案,我提前道歉,我无法找到它。关于将新的 SKSpriteNodes 添加到 SKScene,我有什么误解吗?

0 投票
0 回答
271 浏览

ios - 将 MKMApKit CGPoint 转换为 SKView

如何转换通过 MKMapKit 获取的 CGPoint

到 SpriteKit 的 SKView 坐标系?(SKView 和 MapKit 的视图一样也是全屏的)。

0 投票
4 回答
2110 浏览

objective-c - 将 SpriteKit 场景渲染/快照到 NSImage

有谁知道如何“快照”一个完整的SKViewSKScene成一个NSImage

我们已经能够使用API从节点及其所有子节点textureFromNode创建一个。SKTexture但到目前为止,我们还想不出一种方法来将图像数据提取到NSImage. 我们正在构建一个混合Cocoa/SpriteKit应用程序,我们需要在其中提取场景的小缩略图。

同样,这在 iOS 上似乎是可能的(获得 a UIImage)使用drawViewHierarchyInRect

但是如何做到这一点CocoaNSImage?帮助。

0 投票
1 回答
1364 浏览

objective-c - 在 SKScene 上使用 UICollectionView

我有一个包含多个 SKScene 的应用程序。为了让它保持敏捷,我有一个 UIViewController,它可以处理 1 个 SKView。

我正在尝试将 UICollectionView 添加到其中一个 SKScene 中。但是,当我尝试将集合视图的委托设置为初始化它的 SKScene 时,问题就来了。

我在这里初始化它:

初始化后,我通过调用将集合视图添加为 UIViewController 视图的子视图:

但是不会调用委托或数据源方法。我已经设置了标题:

我猜测尽管将 self 设置为委托,但一旦添加了集合视图,它就会被添加为 UIViewController 的 SKView 的子视图,因此没有对初始化它的 SKScene 的引用。我试着打电话:

但是我收到一个编译器错误,说 SKScene 是 UICollectionViewDelegate 的不兼容类型。

所以我的问题是,如何最好地解决这个问题?

0 投票
1 回答
1531 浏览

ios - 使用计时器呈现后更改 SKscene 的背景颜色

所以我在我正在测试的应用程序的 Skview 中设置了一个 skscene。我像这样设置背景颜色等。

然后我想在已经呈现的场景上随机更改背景背景颜色。我附加了一个标准计时器,在 5 秒后被调用,并在其中执行如下操作:

但是不更新?我尝试用“[skView presentScene:scene];”来表示场景 但不起作用。

0 投票
3 回答
14390 浏览

ios7 - 暂停精灵套件场景

我发现这行代码可以添加到我的项目中,我将如何暂停整个游戏?

例如:

}

如您所见,我已经设置了按钮。当我选择它时,我将如何暂停整个场景?然后当有人点击恢复按钮时恢复它。

好的,所以我有一些建议可以打电话

除了这是问题,在我的应用程序委托中

当它实际上是 SKScene 时,我将其设为 SKView 类型。有任何解决这个问题的方法吗?您是否建议我通过重新输入所有代码将所有场景变成视图?

0 投票
0 回答
99 浏览

uiviewcontroller - 两个具有分离视图方向的 SKScene 对象

我假设会有两个 SKScene 对象。第一个 SKScene 应该只支持纵向视图,第二个 SKScene 应该只支持横向视图,并且实际上是由第一个 SKScene 启动的。可以这样实现,还是只使用两个 ViewController。

问候 SKNode

0 投票
7 回答
15565 浏览

ios - 如何关闭 SKScene?

当我完成我的 SKScene 时,有没有办法从我的 SKScene 课程中解雇 SKScene?

如果没有回到我展示我的 SKScene 的 Viewcontroller [skView presentScene:theScene];的 Viewcontroller中,有没有办法重新启动场景或从我的 SKView 中删除?

SKScene类参考SKView 类参考没有帮助。

更新:

以下代码从我的 SKView 中删除了我的场景,[yourSKView presentScene:nil];但是当我回到我的视图控制器时,场景仍在后台运行。游戏结束时我总是可以暂停它,然后我会被送回我的视图控制器(菜单),但我想知道除了像完全删除它一样暂停它之外还有其他方法吗?