问题标签 [sknode]
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.
ios - 尝试添加已经有父节点的 SKNode
更新:
在我最初的帖子中,我认为这是导致崩溃的物理体属性错误,但实际上并非如此。
当两个物体发生碰撞时,它应该结束游戏,并显示游戏结束屏幕。但是,在随机时间,应用程序会崩溃。我找不到它为什么这样做的模式。有时它是第一次这样做,而另一些时候,我可以在应用程序崩溃之前多次重启。我得到错误:
有问题的代码是此方法的最后一行:
我正在学习使用 SpriteKit,并且正在学习制作像 Flappy Bird 这样的游戏的教程,所以这对我来说都是相对较新的。
显示零件的每个地方_gameOverLayer removeFromParent
:
ios8 - 为什么 iOS8 中 SKNode 成员的 [NSSet containsObject] 失败?
将两个对象添加到 中NSSet
,但是当我检查成员资格时,我找不到其中一个。
下面的测试代码在 iOS7 中运行良好,但在 iOS8 中失败。
输出:
找不到节点
iOS7 和 iOS8 之间发生了什么,我该如何解决?
ios - SKNode 子类中的 __stack_chk_fail
我试图为将重复调用的节点创建一个 SKNode 子类,每次都有用户交互,然后是破坏/爆炸效果。但是,每当我尝试运行代码时,都会收到 SIGABRT 错误。与___stack_chk_fail
调试终端有关。
此外,在检查器中,当 SIGABRT 的代码中断时,所有这些属性都显示为nil
.
这是我的 SKNode 子类的 .m:
。H:
它都在主 SKScene 中调用,其中:_NodeA = [CandyNode new];
, _NodeA 在该类的标头中定义为@property (nonatomic) CandyNode *NodeA;
我的问题显然是我怎样才能让它工作,或者如果我对如何使用子类和 SpriteKit 有一个可怕的误解,我该如何以不同的方式做到这一点?
swift - 尝试添加一个已经有父节点的 SKNode - Swift
好的。这段代码让我发疯。它只是行不通。我收到的唯一消息是“尝试添加一个已经有父节点的 SKNode”。是的,我知道这里有一些讨论,但没有一个给出我需要的解决方案。
这是代码。我真的很感激任何帮助。
objective-c - SpriteKit 在空白位置添加节点,持续时间
我需要一些帮助。我正在开发一款游戏,我有两个问题。游戏快速解释:
共有三个不同的节点(鲨鱼(玩家)、水球和砖块)
游戏开始时有一条鲨鱼、四个水球和八块积木。
当鲨鱼与水球接触时,玩家获得积分,水球消失,游戏在随机位置添加另一个水球,
当鲨鱼与砖鲨接触时死亡并从屏幕上消失。
我的问题是;
第一:当我们击中水球时,我们如何在空位置添加水球。我如何确保新水球与砖块和其他水球的位置不同?
第二:
我想在添加新水球之前等待几秒钟。我怎么做?
这是我的代码的一部分。
谢谢,
caching - 添加、删除和缓存 SKNode
背景信息: 我正在创建一个具有多个“楼层”的 SpriteKit 2D 平台式游戏。当用户进入“门户”时,他被传送到另一层(上一层或下一层)。如果用户死在与最近出生点不同的楼层,他会被传送回出生点所在的楼层。
问题:升级到 iOS8 后,这种情况会导致游戏崩溃并出现EXC_BAD_ACCESS
异常/错误。即使在阅读了有关如何调试此类错误的多个教程之后,我似乎也找不到问题所在。
因此,如果有人可以查看我的代码并告诉我他们是否发现了更好的方法来做我正在做的事情,我将非常感激,最好不会导致游戏冻结。
游戏布局:
我有一个自定义类TileMapLayer
,它基于 Ray Wenderlich 的书iOS Games By Tutorials中的同一类。它基本上是一个自定义的 SKNode 类,包含多个 32x32p 瓦片,结合为我的游戏创建背景。
我在游戏开始时加载适当的楼层,然后在我的用户上/下时调用以加载另一个楼层。在这种情况下,我首先将当前楼层缓存在 a 中NSDictionary
,以便稍后在用户返回该楼层时访问它。
(我也有类似的下楼方法)。这在升级到 iOS8 之前和之后都非常有效。
当用户死亡时,他会被传送回最后一个出生点。如果最后一个生成点位于不同的楼层,则楼层也会相应更改。我将球本身的这个自定义 SKAction 称为动画的一部分:
如您所见,没有太大区别。被Made it here
记录到控制台,但游戏立即冻结。我调用的下一个方法(将球移动到正确的位置)根本没有执行。
只是为了好玩,我尝试_bgLayer
在将其从父级中删除之前对其进行缓存,如下所示:
出于某种原因,当我这样做时,游戏并没有冻结。然而,地板最终混合在一起,就好像_bgLayer
从未从其父级中移除一样(注意:“旧”瓷砖不再对任何物理模拟做出反应,它们只是在后台什么都不做)。
从父级删除后,我也尝试过[_bgLayer removeAllChildren]
(删除单个图块):
但这会导致当我重生后返回此楼层时 _bgLayer 为空。好像我在将其存储在字典中之前删除了所有节点。我的猜测是字典只引用 _bgLayer 的位置,而不是内容本身。因此,当我删除屏幕上的所有子项时,我也有效地删除了缓存中的所有子项。
总结:
我知道这是一个很长的问题,如果你能做到这一点,我想说声谢谢。如果您有任何问题,请随时在下面的评论中提问。最终,我想知道的是:我怎样才能解决我的问题,这样游戏才不会死机?在不引起内存问题的情况下缓存地板的最佳做法是什么?在屏幕上删除和添加节点的最佳实践是什么,并且总是将当前楼层(屏幕上的那个)称为_bgLayer
?
再次,谢谢你!
ios8 - GameCenter 的奇怪异常
我不断从 GA 和用户那里收到此崩溃报告...但是我无法通过使用 ios7 和 ios8 测试 iphone5、5s、6 来重现此异常。当应用程序确实进入后台时,此问题无处可寻。奇怪的是,gamecenter 会调用 spritekit,用于显示成就横幅?
有没有人有同样的问题?
iOS8 GKLocalPlayerInternal Unrecognized Selector上的类似崩溃问题
我尝试了使用 SKNode 和 GKPlayer 的测试
会导致下面和上面结果一样的异常,意思是系统比较SKNode和[GKPlayer postChangeNotification]....真的很奇怪。
ios - Fixed floor in Sprite Kit Xcode
I can't seem to get a unmovable fixed floor / wall in Sprite Kit.
I have a scene which has an SKNode as a "floor" and when the user presses the screen, a block drops from the touched position onto the "floor". That works well, but when the user adds another lets say 20 blocks or so, suddenly the floor rotates. This is the code for my Floor:
Sorry i'm quite new to Sprite Kit. Does anyone know what's wrong with my code?
EDIT: I've added some images to make the problem a bit more clear. Since it happens in this screen also. Those black spheres you see are flying from left to right like a canonball. I increased the amount of spheres to show the problem occurring. This is the code:
After a while 5-10 seconds, the "buttons" called "slaughter" and "edit castle" start to rotate everytime a sphere collides with it. But it doesn't seem like it has to do something with physics, because, if it rotates to the left, it's rotation direction will always be left. And if it starts rotating right, it's rotation direction will always be right.
It looks funny though! But not what i want ;-)
ios8 - SKSpriteKit。SKScene 是否可以作为实体来固定 SKNode?
我想通过将 SKNode 固定到 SKScene 来修复空间中的 SKNode(节点具有物理体)。所以它可以参与物理模拟——碰撞、旋转等。但不能移动。这是允许的吗?有没有更好的方法来修复空间中的物理节点但让它参与物理模拟?
ios - SKShapeNode 位置与地面对齐
我只是想画一个矩形并将其放在屏幕的左下角
问题是即使我相信所有的数学都是正确的,矩形在屏幕下方大约有 38 个点/像素,如下图所示(白色边框显示限制)。
供您参考,这里是位置、高度和宽度的输出。
如果我简单地采用这条线但添加 38 点/像素它可以工作,但为什么呢?有什么我想念的吗?