问题标签 [skspritenode]

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 投票
1 回答
134 浏览

ios - 如何以给定的模式排列 SKSpriteNodes

我有几个类似的 SKSpriteNode,我想在屏幕上以特定的模式排列它们。具体来说,我希望它们围绕另一个中心 SKSpriteNode 排列成一个圆圈。

我将每个 x,y 放在一个数组中并setPostion:CGPointMake(x,y)用于放置在屏幕上:

虽然这可行,但效率不高,而且随着游戏水平的提高,我想安排越来越多的精灵。

有什么好主意如何完成这项工作?

谢谢,有钱

0 投票
1 回答
6233 浏览

ios - 为什么 SKSpriteNode node.frame.size.width 小于 node.size.width?

为什么 SKSpriteNode node.frame.size.width 小于 node.size.width ?
这是示例代码,可能您需要插入自己的图像

//这里画精灵

0 投票
1 回答
203 浏览

ios - 使用超类类方法初始化与初始化方法之间的区别

[super init]我试图了解使用vs初始​​化子类有什么区别[SuperClassType classMethod]。以下是代码示例:

在这里它按预期工作。self是一种AppNode,但在下面,SKSpriteNode即使强制转换,它也总是返回。有什么不同吗?

0 投票
2 回答
3326 浏览

sprite-kit - Why is the coordinate system in sprite kit flipped and can I change that globally?

I noticed that in Sprite Kit the coordinate system is flipped.

For example, here is a SKSpriteNode:

The car is positioned in the center of it's parent.

When I set position to:

then it is positioned more to the left. But when I want to move it down, and increase Y, it moves UP!

In UIKit increasing Y always means something moves down. It feels more logical to me. Is there a way to flip the coordinate system in Sprite Kit?

0 投票
1 回答
2762 浏览

ios - SKCropNode 将裁剪部分作为 SKSpriteNode

我对 SKCropNode 应用了一个蒙版,我现在看到了我需要的东西,但是裁剪的节点具有完整图像的大小我只想访问裁剪的部分而不是完整的图像我可以将它放入 SKSpriteNode 吗?

这是我的代码

这是图像和结果:

蒙版图片

图片

结果

提前致谢

0 投票
2 回答
1456 浏览

sprite-kit - 绘制移动 SKSpritenode 的路径

我正在尝试使用新的 SKSpritenode ,我设法创建了一个 Spritenode 在屏幕上移动它,尽管我希望 Spritenode 在它移动的地方留下痕迹(颜色)。

创建 Sprite 节点的代码和我尝试创建一个 shapenode 作为 spritenode 的子节点(这不起作用)。

如果您有更好的解决方案,请告诉我!

0 投票
1 回答
230 浏览

sprite-kit - 更改 CGPOINT 的颜色

我设法创建了一个 SKspritenode,让它四处移动,虽然我想改变节点经过的每个 CGPOINT 的颜色。

无论如何要这样做?

0 投票
2 回答
434 浏览

sprite-kit - SKPhysicsContact 当对象与多个对象发生碰撞时,首先处理,忽略所有其他对象.. 怎么样?

好的,我有一些物理对象,它们都被很好地分类,并且我的 didBeginContact 被正确触发,并且做了它应该做的事情。问题是这样的:

我有两类物体,比如球和桨……当球碰到桨时,球应该爆炸……很简单……问题在于球可以同时接触 2 个桨……所以,不止一个 didBeginContact 被调用,因此发生了不止 1 次爆炸(每个球接触的桨 1 次)。所以我想弄清楚的问题是,如何删除/忽略所有后续与桨的接触如果代码已经处理了涉及原始球的碰撞,则不会被处理?在开始爆炸之前从父级移除 SKSpriteNode 不会使其他联系人无效,它们仍然会被处理......所以我该怎么说......嘿,物理联系人的东西......那个身体不再在图片中......所以只是把那些联系人扔掉,不要担心他们?

我想我可以在进行爆炸等之前明确检查父级在联系代码中是否仍然有可用的 SKSpriteNode ,但这似乎充其量是笨拙的,尽管我认为它会起作用......还有另一种/更好的方法来处理这个吗?我必须相信有。

0 投票
3 回答
10147 浏览

ios - 这个 SpriteKit 设置中的坐标系有什么问题?

我创建了一个 SKView ,它显示了一个 SKScene 子类,如下所示:

然后为了查看坐标系原点,我在场景中添加了一个 10x10 的彩色小方块。

您可以在左下角看到绿色方块:

左下角的绿点

从我的想法来看,SpriteKit 坐标系是这样的,原点总是在中心。但在场景中,原点位于左下角。当我将子节点添加到 {0,0} 时,它也会出现在左下角。

当我添加一个 SKSpriteNode 并将其放置在场景中 {0,0} 时,它会出现在左下角。但它以左下角的场景原点为中心(向左剪掉一半,从底部剪掉一半)。

但现在它变得更加混乱。当我将 SKSpriteNode 添加到另一个 SKSpriteNode 时,子精灵在父精灵中居中。

那么这是否意味着场景坐标系与精灵坐标系的工作方式不同?

回顾:

  • 当我在 {0,0} 的场景中放置一个精灵时,它出现在左下角,被剪掉 50%(以原点为中心)。
  • 当我将精灵定位在 {0,0} 的精灵中时,它会出现在精灵的中心。

我的场景配置错误还是它的工作方式是这样的?

0 投票
1 回答
463 浏览

sprite-kit - 如何在 SpriteKit 中执行自定义绘图?

有 SKShapeNode 但它不能与遮罩一起使用。

是否有相当于 UIView 的 -drawRect: 或 CALayer 的 -renderInContext: 在 Sprite Kit 中的?我看着SKSpriteNode。看不到使用 Core Graphics 函数执行自定义绘图的方法。

你会怎么做?