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

ios - 根 ViewController 没有对来自 SpriteKit 视图的消息做出反应

我正在使用root viewcontroller来显示几个标签来跟踪分数等,这工作正常。但是,当场景加载时,根视图控制器不会立即响应来自场景的消息。

情况是这样的:UIViewController展示了SKView我在上面初始化MyScene的地方(普通的 SpriteKit 东西)。在 MyScene 中,我立即从 a 加载关卡json-file,其中包含该特定关卡上可能的点数。关卡加载完成后,我尝试将可能的点数发送回我的根视图控制器,以便它可以在标签中显示它。

我尝试myScene.mainViewController = selfviewWillLayoutSubviewson设置属性ViewController,然后只是[self.mainViewController setInitialScore:_bgLayer.maxScore];,但该方法setInitialScore永远不会触发。我也尝试过使用NSNotificationCenter,但这也不起作用。

self.mainViewController但是,每当玩家获得一个点(稍后会发生)时,我都会调用一个方法,并且效果很好。所以问题似乎是 ViewController 没有完成加载或其他什么,所以它没有立即响应。

我怎么能解决这个问题?

编辑 1: 这里有一些代码请求:

视图控制器.m

我的场景.m

正如您从这段代码中看到的那样,我正在尝试使用NSNotificationCenter. 我也尝试过[self.mainViewController setInitialRings:_bgLayer.numRings];手动调用(但将setInitialRings-method 更改为采用整数而不是通知)。

0 投票
2 回答
668 浏览

ios - SKView bounds.size 在触摸事件时反转(Sprite Kit)

请帮助我理解以下行为(iOS Sprite Kit)。

我在下面提供的代码的输出是:

1.skView.bounds.size = 768.00, 1024.00

2.skView.bounds.size = 1024.00, 768.00

如上所示,宽度和高度在两种方法之间切换,这导致我的第二个场景以不正确的比例呈现。

我的游戏只能在横向模式下运行,这意味着事实上,第二个宽 x 高比是正确的(尽管它是第一个以正确的纵横比渲染场景,这对我来说本身就是一个谜) .

谁能告诉我如何解决这种行为?我究竟做错了什么?

我提前非常感谢。

** 编辑: **

@giorashc 解决了我的问题,建议我将场景启动移动到 -(void)viewWillLayoutSubviews 方法。

但是我的第二个场景仍然被拉伸......这是更改后 SKTViewController.m 的完整代码(谁能说为什么第二个视图仍然被拉伸?):

* 编辑 2 **

好的,现在一切都解决了。

当@giorashc 建议将场景启动移动到 viewWillLayoutSubviews 时,他立即解决了我的问题。事实证明,由于我之前使用了错误的边界,所以我使用错误的值设置了我的原始场景,现在它已被修复,它看起来被拉伸了。

但现在已经修好了。非常感谢@giorashc!

0 投票
2 回答
1828 浏览

ios - UIVisualEffectView 不会模糊它的 SKView 超级视图

我正在编写一个 SpriteKit 游戏,但在 SKView 上遇到了视图模糊的问题。它应该在游戏暂停时从右侧滑动,并且它应该模糊其父视图(SKView)的内容,就像 iOS 7 中的控制中心面板一样。这是所需的外观:

在此处输入图像描述

我实际得到的是:

在此处输入图像描述

事实上,左边的视图并不是全黑的,你可以看到超级视图的高光在几乎不透明的子视图中略微挣扎,但没有应用模糊。是 iOS 8 的错误/功能,还是我的错误/误解

这是我的 UIVisualEffectView 子类的要点:

然后在 GameScene 类中:

在初始化程序中:

在 didMoveToView(视图:SKView)中:

按下暂停按钮时:

PS 虽然我知道另外两种实现模糊视图的方法,但我认为这是最简单的,因为我的应用程序将仅支持 iOS8

  1. 从 superview 渲染一个模糊的静态图像 -> 将 UIImageView 放在 OptionsView 上,使用 clipsToBounds = true -> 在为 optionsView 位置设置动画时为 UIImageView 位置设置动画,以便模糊相对于 superview 保持静止

  2. 忘记 UIView、UIVisualEffectView 和 UIBlurView,将 SKEffectNode 与 SKCropNode 一起使用。

0 投票
1 回答
2053 浏览

ios - Show UIView in front of SKView - iOS - SpriteKit

I have a simple little Sprite Kit game for iOS. I am trying to get my UIView (which contains main menu buttons/title) to appear above the SKView where some nice moving animations are happening. This is not for game play, that is on a separate view.

I have setup a UIView (which has its class set to SKView) and another UIView onto of that which has all the UIButtons and the game title.

However, I can't seem to get the SKView to appear above my UIView which contains the buttons/title.

The general reason as to why I am trying to do this is that on the main menu I want some nice continuous animations to happen in the background as a sort of nice effect while the user decides to select whichever button. I can just try and do the animations which some methods and very basic UIView Animation code, but then the UI gets blocked and its just a pain to get it to work, thus SpriteKit animation is much much better and smoother.

Here is how I'm trying to do it:

In my storyboard file I have two UIViews as I talked about like so:

Storyboard UIView setup image

How can I get around this issue?

Thanks for your time, Dan.

0 投票
1 回答
241 浏览

objective-c - 直接从 SKScene 显示游戏中心

一段时间以来,我一直在尝试在 SKScene 上显示游戏中心排行榜,但我无法弄清楚我已经查看了多篇文章.. 来自谷歌和这里,当我点击将您带到这里的按钮时场景它把你带到那里并显示一个灰屏,就是这样,我已经验证了播放器和所有内容。视图是否可能在幕后?这是我正在使用的场景

0 投票
2 回答
153 浏览

objective-c - 调用实现 SpriteKit 场景的 ViewController 时崩溃

我正在尝试使用以下代码从 viewcontrollerA 调用 viewcontrollerB:

在 viewcontrollerB 我有以下代码:

我收到错误:

[UIView setShowsFPS:]: 无法识别的选择器发送到实例

所以我已经阅读并实施了以下链接中写的解决方案:

简单的 Sprite Kit 场景设置出错

但我有同样的错误。

0 投票
1 回答
2793 浏览

ios - SpriteKit 暂停和恢复 SKView

我想暂停和取消暂停 SpriteKit 中的场景,在同一位置有 2 个按钮。在场景运行时,我想显示“暂停”按钮。当场景暂停时,我想隐藏“暂停”按钮并显示“播放”按钮。在 SpriteKit 中,您可以使用self.scene.view.pausedSpriteKit 中定义的。

我的代码:

它暂停了场景,但仍然有暂停按钮,如果我再次触摸暂停按钮,场景就会恢复。所以现在只有图像不会改变。我怎样才能解决这个问题?

0 投票
0 回答
102 浏览

objective-c - 在 Cocoa 应用程序中混合 SKView 和 NSVew 的问题

在我的项目中,我在 1 个窗口中将 SKView 与标准 NSView 对象混合在一起。现在我试图从 SKscene(mouseDown 位置)获取一些信息并将其显示在 skview 对象附近的标签中。我尝试在 skview 方法中使用全局变量并为其赋值

但是当从nsbutton检查它时,像这样:

...它仍然像 init (annul) 之后一样。
甚至有可能混合这些技术吗?
ps:对不起我的英文
项目屏幕: http ://s8.postimg.org/kdmu36h6d/2014_09_19_20_02_30.png

0 投票
1 回答
1561 浏览

ios - 如何使用 Swift 正确切换 SpriteKit 中的 SKScene?

我正在开发一款具有 3 个不同 SKScene(场景 1、场景 2、场景 3)的游戏。在 GameViewController 中,我像这样初始化它们:

我的想法是先呈现第一个场景,然后呈现(切换到)另一个场景(即当英雄更强大时)。在每个场景中,英雄精灵都是这样添加的:

而在更新方法中,英雄位置是通过触摸来更新的。

英雄类如下所示:

问题是:当只有第一个场景(场景1)被初始化时,英雄可以通过触摸来移动。这意味着,使用上面的代码,英雄不再是可移动的。

谁能给我一些建议我做错了什么?提前致谢!

PS:完整的代码可以在Github中找到。

0 投票
0 回答
224 浏览

uiview - 在 transitionWithView 上 SpriteKit 崩溃

我有几个崩溃报告Collection <__NSArrayM: 0x12345678> was mutated while being enumerated. 但是在我的测试中我无法重现该错误。

当我转换到不同的 SKView 时,这似乎是通过一系列事件触发的。

我已经读过,当您在枚举子节点期间从其父节点中删除节点时可能会发生此错误,但我不相信我在这里这样做,并且下面的完整堆栈跟踪似乎也没有表明它。

我不知道为什么[SKNode setPaused:]会导致添加或删除子节点,而且似乎也没有任何迹象表明其他线程中会发生这种情况。

完整的堆栈跟踪