问题标签 [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.
iphone - 将弧度角转换为 CGVector
使用 Sprite Kit 我试图SKPhysicsBody
根据给定的角度设置移动,例如,如果您希望精灵向右移动,您可以指定 1.571 弧度。要将指定的角度转换为速度,我使用以下方法将弧度转换为CGVector
. 我从记忆中实现的原始版本具有将所有角度偏移 90 度的奇怪效果。(即,如果使用 0 度,则精灵向右移动(就像您指定 90 度时一样)
问题:
我通过交换dx
和dy
分配在新版本中修复了这个问题。我的问题是为什么会发生这种情况,我在原件中是否有错误(似乎确实有其他人在网络上这样做)或者是否存在基于所使用的特定坐标系的某些原因。
注意:在 Sprite Kit 中,顺时针旋转也是负数,到目前为止convertAngleToVector
是正顺时针旋转(即 1.571 弧度是正确的,应该在左边)我可以这样做cos(radians*-1)
,sin(radians*-1)
但是基于我交换 dx 可能有一些潜在的原因和dy。
雪碧套件(SKView 坐标):
ios7 - 将 SpriteKit 视图集成到 xib 视图中
我有一个已经使用 xib 文件创建的视图。
现在我想在这个视图中添加一些小元素,以利用 SpriteKit 中的一些物理动画,所以现在我需要一个 SKView。
是否可以将 SKView 添加为与我的 xib 视图对应的视图的子视图?我试过这个,它似乎没有显示任何东西。
下面是在我的XIB视图对应的ViewController中:
我的自定义 SKView 的 ViewController 有:
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,我有什么误解吗?
ios - 将 MKMApKit CGPoint 转换为 SKView
如何转换通过 MKMapKit 获取的 CGPoint
到 SpriteKit 的 SKView 坐标系?(SKView 和 MapKit 的视图一样也是全屏的)。
objective-c - 将 SpriteKit 场景渲染/快照到 NSImage
有谁知道如何“快照”一个完整的SKView
或SKScene
成一个NSImage
?
我们已经能够使用API从节点及其所有子节点textureFromNode
创建一个。SKTexture
但到目前为止,我们还想不出一种方法来将图像数据提取到NSImage
. 我们正在构建一个混合Cocoa
/SpriteKit
应用程序,我们需要在其中提取场景的小缩略图。
同样,这在 iOS 上似乎是可能的(获得 a UIImage
)使用drawViewHierarchyInRect
:
但是如何做到这一点Cocoa
呢NSImage
?帮助。
objective-c - 在 SKScene 上使用 UICollectionView
我有一个包含多个 SKScene 的应用程序。为了让它保持敏捷,我有一个 UIViewController,它可以处理 1 个 SKView。
我正在尝试将 UICollectionView 添加到其中一个 SKScene 中。但是,当我尝试将集合视图的委托设置为初始化它的 SKScene 时,问题就来了。
我在这里初始化它:
初始化后,我通过调用将集合视图添加为 UIViewController 视图的子视图:
但是不会调用委托或数据源方法。我已经设置了标题:
我猜测尽管将 self 设置为委托,但一旦添加了集合视图,它就会被添加为 UIViewController 的 SKView 的子视图,因此没有对初始化它的 SKScene 的引用。我试着打电话:
但是我收到一个编译器错误,说 SKScene 是 UICollectionViewDelegate 的不兼容类型。
所以我的问题是,如何最好地解决这个问题?
ios - 使用计时器呈现后更改 SKscene 的背景颜色
所以我在我正在测试的应用程序的 Skview 中设置了一个 skscene。我像这样设置背景颜色等。
然后我想在已经呈现的场景上随机更改背景背景颜色。我附加了一个标准计时器,在 5 秒后被调用,并在其中执行如下操作:
但是不更新?我尝试用“[skView presentScene:scene];”来表示场景 但不起作用。
ios7 - 暂停精灵套件场景
我发现这行代码可以添加到我的项目中,我将如何暂停整个游戏?
例如:
}
如您所见,我已经设置了按钮。当我选择它时,我将如何暂停整个场景?然后当有人点击恢复按钮时恢复它。
好的,所以我有一些建议可以打电话
除了这是问题,在我的应用程序委托中
和
当它实际上是 SKScene 时,我将其设为 SKView 类型。有任何解决这个问题的方法吗?您是否建议我通过重新输入所有代码将所有场景变成视图?
uiviewcontroller - 两个具有分离视图方向的 SKScene 对象
我假设会有两个 SKScene 对象。第一个 SKScene 应该只支持纵向视图,第二个 SKScene 应该只支持横向视图,并且实际上是由第一个 SKScene 启动的。可以这样实现,还是只使用两个 ViewController。
问候 SKNode
ios - 如何关闭 SKScene?
当我完成我的 SKScene 时,有没有办法从我的 SKScene 课程中解雇 SKScene?
如果没有回到我展示我的 SKScene 的 Viewcontroller [skView presentScene:theScene];
的 Viewcontroller中,有没有办法重新启动场景或从我的 SKView 中删除?
SKScene类参考和SKView 类参考没有帮助。
更新:
以下代码从我的 SKView 中删除了我的场景,[yourSKView presentScene:nil];
但是当我回到我的视图控制器时,场景仍在后台运行。游戏结束时我总是可以暂停它,然后我会被送回我的视图控制器(菜单),但我想知道除了像完全删除它一样暂停它之外还有其他方法吗?