问题标签 [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 - SpriteKit:检测完整的节点重叠
我有两个 SKShapeNode——一个带有基于边缘的 SKPhysicsBody,一个基于体积——我想检测它们的交叉点而不会发生碰撞。我的工作正常,当一个人越过另一个人时调用 SKPhysicsContactDelegate 接触方法,但我的问题是当边缘不再相交didEndContact
时被调用,即使一个身体完全包含在另一个身体中。确定真正接触或重叠的最佳方法是什么,而不仅仅是边缘相交?我试过了,没有用。usesPreciseCollisionDetection
ios7 - Sprite Kit 使用 SKAction 移动节点导致问题
我正在尝试创建一个积木游戏,其中有一排积木,我将末端积木从右向左滑动,其他每个积木都向右移动 1 个位置。如果我再次将块向后滑动,它们都会向左滑动 1 个位置。我遇到的问题是,如果我缓慢拖动它可以正常工作,但是如果我快速来回拖动,块会变得一团糟,它们会相互重叠,所以不是一排 6,而是一排 4因为 2 个街区位于其他街区的后面。任何建议表示赞赏。
这是我的 Scene.M 中的代码
这是我的 Block.M 中的代码
ios - SK节点!不能转换为“SKNode”
我遇到了这个问题,无法解决,我不太了解解包变量的文档
错误:(字符串!)-> SKNode!不能转换为“SKNode”
谢谢
objective-c - SpriteKit:无限移动精灵导致帧有时不连续
全部。我现在正在使用精灵套件开发一个 ios 游戏。游戏机制包括:从上到下无限滚动精灵。
我的游戏场景只有 3 个精灵,上、中、下。我有几十个精灵图像,所以我的解决方案是动态创建 3 个精灵(这样精灵可以填满整个屏幕),当底部精灵离开屏幕时,然后销毁它;当顶部精灵从顶部框架下降时,创建一个新的精灵节点,然后交换底部,中间,顶部精灵。
伪代码:在接口文件中:
在实现文件中:
游戏fps为60,节点数没有增加。一切似乎都很好,但我发现有时游戏突然有一个非常严重的阻塞,导致移动帧不连续。在我的直觉中,我认为主要原因是由第4步引起的。但我没有任何解决它的想法。任何建议将不胜感激。
这是 createNewNode 方法:
ios - 为什么 SKEmitterNode 会破坏累积帧?
我使用以下代码块,当我调试时,我看到 SKShapeNode 的累积帧现在{{-160.03586, -42.431793}, {470.03586, 519.50903}}
不是{{0,0}, {100,300}}
.
如果我把这整个粒子代码注释掉,accumulatedFrame
就又有意义了。
我需要它有意义,因为我nodesAtPoint
在touchesBegan
. 任何无意义的值也会导致nodesAtPoint
找到不相关的节点,因为累积帧现在对所有人来说都很奇怪,而且它们都相交......
我使用以下代码块,但我找不到问题所在。我在这里想念什么?
swift - 使用 swift 拖放精灵而不使用硬编码名称
我只是想让用户在屏幕上拖放某些精灵。我看到的答案是检查精灵的名称(如下所示)。必须有更好的方法来做到这一点。感谢您的任何意见。
ios - SKAction:如何在生成节点时产生随机延迟
我使用以下代码定期生成 SKNode。有没有办法让这些 SKNodes 的生成周期随机化。具体来说,如何使以下代码中的“delayFish”成为具有随机延迟的动作?
ios - Objective C - SKNode 子类“吞下”触摸?
我正在尝试对 an 进行子类化,SKNode
以便当您触摸它的框架(包含其子项的最小框架)时,该touchesBegan::
方法会通知它。
SKSpriteNode
但是,似乎只有在触摸孩子时才会通知它。我尝试过覆盖该containsPoint:
方法但没有成功。
这是我的代码:
发生的情况是,当触摸 mainChar 和 nSKSpriteNodes
节点而不是屏幕的其余部分时,我只会得到一个触摸事件。
我能想到让它工作的唯一方法是SKSpriteNode
在背景中添加一个透明,但必须有更好的方法!
我怎样才能让它SKNode
“吞下”它收到的触摸,而不管孩子是否正在被触摸?即我希望通过该方法在SKNodes
' 框架中进行触摸以通知它。touchesBegan::
更新:我认为这是SKNode
' 框架的问题。当我添加孩子后做..
框架返回的高度和宽度为 0。但是,当我这样做时[self calculateAccumulatedFrame]
,它返回正确的大小。为什么是这样?
更新:这个问题完全是一团糟。我将坚持添加透明SKSpriteNode
或使用SKScene
. 很抱歉给大家带来了困扰,感谢您的帮助。
ios - 子类化使用 SpriteKit .sks 场景文件创建的 SKNode
(这适用于 XCode 6 和 iOS 8 beta 4)
喜欢新的 SceneKit 编辑器。我已成功将 .sks 文件中的场景加载到自定义 SKScene 类中。但是,其中的对象被实例化为默认类(SKNode、SKSpriteNode 等),我不确定如何将它们绑定为实例化为自定义子类。
目前,我通过创建自定义类并将精灵节点作为属性链接来解决这个问题,而且效果很好
sprite-kit - SKNode removeFromParent 有时会删除额外的孩子
我发现我的游戏中的一个 SKNode 在其中一个孩子调用 removeFromParent 时删除了额外的孩子。为了验证这一点,我覆盖了 removeFromParent 并添加了以下断言,以验证仅删除了一个孩子。断言失败:
}
我已经为此提交了一个错误报告,但我现在坚持下去,因为我没有解决方法。我想知道是否有其他人遇到过这种情况并且可能有解决方法。