问题标签 [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
我注意到 SKNode 方法children
,childNodeWithName:
顾名思义,仅从查询节点正下方的子节点返回结果。即将[root children];
返回一个NSArray
包含节点@[CUBE1, CUBE2, CUBE3]
。
在下图中,我想从 ROOT (SKScene) 级别下降到 SPHERE2,以便我可以快速访问该节点的子节点。我希望这[root childNodeWithName:@"SPHERE2"];
将遍历整个层次结构并返回指向 SPHERE2 的指针
我的问题:有什么我错过的东西可以让我在指定点跳入节点树(即使用节点名称)
我可以使用属性来存储指向树中重要位置的指针,然后使用这些来访问和处理任何子节点,所以这是一个选项......
ios - Sprite Kit bodyAtPoint 和 bodyInRect 返回不正确的值?
我创建了一个非常简单的示例代码,只有一个场景,一个精灵节点 20x20px,位于屏幕上的 0.0 点。当我调用scene.physicsWorld bodyAtPoint
它时,即使在例如:34x34 时也会返回这个节点。但在点 35x35 它返回null
。所以基本上两个轴上从 0px 到 34px 的所有点都返回这个节点,从 35px 开始,它不再返回它了。如果精灵明显以 20px 20px 结束,知道可能是什么原因吗?在 中可以看到相同的行为bodyInRect
。
这是示例代码:
这是控制台日志:
是否有可能是 Apple 的错误,在nodeAtPoint
和中都有nodeInRect
吗?难以相信。但是代码太短了,我看不出这里有什么错误。任何帮助将不胜感激。
ios - SpriteKit Physics:在不同的z平面上时忽略
使用 SpriteKit,是否有可能有两个节点相互碰撞,但是当引入另一个节点时,物理的工作方式会发生变化吗?
例如,考虑以下 3 个节点:
- Object
- Object_Hole
- Player
因此,一个包含玩家(橙色圆圈)和对象(蓝色矩形)的场景:
在上面的场景中,玩家(圆形)会受到重力影响并与物体(方形)发生碰撞。我知道这是如何通过使用物理体、类别和碰撞位掩码来工作的。
现在,介绍 Object_Hole(绿色方块):
在上面的场景中,Object_Hole(绿色方块)覆盖了 Object(蓝色矩形)——它可以在同一个 z 平面或更高的平面上。
是否可以让 Player(圆)上的 PhysicsBody 不与 Object_Hole 所在区域的 Object 发生碰撞?
如果有比添加覆盖节点更好的方法来实现这一点,请告诉我。否则,有可能吗?
谢谢!
subclass - Sprite Kit:如何对 SKNode 进行子类化以创建车辆类(具有关节的复杂对象)
有没有人(本机)想出如何将 SKNode 子类化以包括通过关节连接的多个主体 - 例如,汽车?
似乎没有办法将子类的关节添加到父场景的physicsWorld 属性。
此外,当尝试编译和运行下面的对象时,即使没有关节,我也会收到 BAD_EXC_ACCESS 错误。
感谢@Smick 提供此处发布的初始车辆代码:Sprite Kit 销接头似乎有不正确的锚点
卡车类:
我的场景:
ios - 为什么 Sprite Kit SKNode 公开 zRotation、xScale 和 yScale 而不是简单的变换?
Sprite Kit 依赖于 zRotation、xScale 和 yScale 而不是简单的变换属性。是因为 Apple 需要旋转和缩放值来计算具有更高性能的物理吗?
或者他们为什么不简单地公开一个变换属性而不是单独的旋转和缩放属性?
ios - 如何将 SKNode 渲染到 UIImage
只是在玩 SpriteKit,并试图弄清楚如何将 SKNode 的“抓取”捕获到 UIImage 中。
使用 UIView(或 UIView 子类),我使用layer
了视图的属性来渲染到图形上下文中。
例如。
SKNode 不是 UIView 的子类,因此似乎不受层的支持。
关于如何将给定的 SKNode 渲染到 UIImage 的任何想法?
objective-c - 试图在精灵套件中的对象和角色相交时移除精灵
下午好,使用 Xcode / Spritekit / OSX 10.9.1
在我试图扩展的教程中,我设置了 3 种方法来召唤心灵。心在现场显示如下:
心脏容器在initWithSize:
方法中被调用
MyhitCount
是在头文件中设置的 int,我使用以下方法以及更新方法的第二个发布部分来检测损坏。我试图在heartContainer
基于hitCount
int 造成损坏时自行移除。
抱歉,如果是多个heartContainer
方法上显示的多余代码,我只是想我可以检查heartContainer
方法本身中的 int ,然后在满足条件时将其删除。我还尝试在调用它们后立即将 if 语句放入initWithSize:
方法中,但这也不起作用。
sprite-kit - 在 SpriteKit 中使用 SKEmitterNode 和粒子创建轨迹
我正在尝试制作它,以便每当玩家移动时,我制作的粒子都会跟随玩家。我试图复制的效果就像你在一个网站上并且他们有一些对象跟随你的鼠标。我试图通过使粒子移动玩家所做的量来做到这一点,但它并没有再现预期的效果。有什么建议么?我的代码:
声明粒子
移动方式
ios - iOS7 Sprite Kit 我可以存档整个场景并将其用作保存游戏吗?
我正在查看userData
SKNode 的属性并注意到以下声明:
Sprite Kit 不对节点中存储的数据做任何事情。但是,归档节点时会归档数据。
这让我开始思考——是否可以通过归档场景及其所有依赖项/控制器来实现单个保存游戏功能?
我试图了解是否有一些神奇的 [存档] 消息可以发送到场景或场景视图,以消除编写自定义数据结构来存储保存游戏的需要。
ios - 这个 SpriteKit 设置中的坐标系有什么问题?
我创建了一个 SKView ,它显示了一个 SKScene 子类,如下所示:
然后为了查看坐标系原点,我在场景中添加了一个 10x10 的彩色小方块。
您可以在左下角看到绿色方块:
从我的想法来看,SpriteKit 坐标系是这样的,原点总是在中心。但在场景中,原点位于左下角。当我将子节点添加到 {0,0} 时,它也会出现在左下角。
当我添加一个 SKSpriteNode 并将其放置在场景中 {0,0} 时,它会出现在左下角。但它以左下角的场景原点为中心(向左剪掉一半,从底部剪掉一半)。
但现在它变得更加混乱。当我将 SKSpriteNode 添加到另一个 SKSpriteNode 时,子精灵在父精灵中居中。
那么这是否意味着场景坐标系与精灵坐标系的工作方式不同?
回顾:
- 当我在 {0,0} 的场景中放置一个精灵时,它出现在左下角,被剪掉 50%(以原点为中心)。
- 当我将精灵定位在 {0,0} 的精灵中时,它会出现在精灵的中心。
我的场景配置错误还是它的工作方式是这样的?