问题标签 [sprite-kit]

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 投票
5 回答
14083 浏览

ios7 - SpriteKit 中的缩放和滚动

我是 SpriteKit 的新手。我需要通过 UIImageView 或 SpriteNode 显示图像(它是游戏的背景图像)。但是,我需要用户能够放大背景并平移。我在不使用 SpriteKit 的情况下轻松完成了这项工作,但无法弄清楚如何让节点接受缩放和平移。如果我在情节提要中使用 UIScrollView,则添加到我的场景中的所有精灵都不会成为孩子,也不会缩放或平移。

有可能吗,你能指出我正确的方向吗?


编辑:

我对你的回答有点困惑,但这是我所做的:

在我的根视图控制器 .m 中:

在我的场景中 .m:(您的步骤已被评论)

这就是我迷路的地方: 第 5 步:现在,在您的根视图中添加您的 SKView,并在 SKView 之上添加 UIScrollView。

如果我理解正确,我需要转到 myRootViewController.m 并在 viewDidLoad 方法中,将 SKView 和 UIScrollView(在 myScene.m 中初始化)作为子视图添加到在 viewDidLoad 方法中初始化的 SKView 中?我不知道如何做那部分。

0 投票
2 回答
506 浏览

ios - NSMutableArray 索引变得非常高并且 removeObjectAtIndex 超出范围

我正在 SpriteKit 中进行测试和原型设计,并有我双击翻转的精灵。我有 52 个精灵_theArray,其中包含当前视图中精灵的名称。当我选择一个精灵时,我希望它位于 zPosition 线程的顶部,通过实现这一点,我使用以下代码刷新所有精灵的 zPosition:

只要我只拖动精灵,代码就可以工作,但是当我替换精灵并删除原来的我删除index = 0和添加index = 0_theArray,这似乎是导致问题的原因。

崩溃发生在以下行:

...索引为:2147483647

...虽然它应该是0

崩溃日志:

我将非常感谢我能得到的任何帮助。

0 投票
1 回答
389 浏览

iphone - 使用 SpriteKit 驱动计算

我有一个tilemap(Kobald Kit的KKTilemapNode)和一个中间的角色,现在我使用操纵杆上下移动tilemap并计算速度,我遇到的问题是如果我向左转角色,它仍然只是向上向下,因为我不知道如何计算一个角度下的新位置。我尝试移植一些 Flash 示例,但我发现的示例没有平铺图 :(

编辑(添加源):

0 投票
1 回答
1353 浏览

iphone - 在 SpriteKit 游戏中计算速度

我正在使用 SpriteKit 和 Kobald Kit(开源添加)来创建一个基于图块的游戏,中间有一个角色。目前,当用户使用基于 CADisplayLink 刻度的操纵杆组件时,我正在计算角色的速度值。问题是角色在更高的帧速率上更快,正确的解决方案是什么?我知道我可以简单地使用操纵杆本身的 Y 值,但我宁愿失去良好的加速/减速效果......

0 投票
3 回答
8295 浏览

physics - SpriteKit - 设置比例和物理

在场景中“缩小”的正确方法是什么。

我有一个对象,我应用一个冲动在屏幕上发射它。例如,它会发射大约 100 像素。这可以按预期工作 - 增加它飞行的力,增加它飞行的密度,等等。

我遇到的问题是缩放,我知道缩小场景的唯一方法是 setScale,然后按预期缩小我的所有节点。

但是,它不是飞行相同数量(只是缩小)的物体,而是飞行距离的两倍多。

当我在缩放之前和之后记录对象的质量/密度等时,它们是相同的,正如预期的那样。

那么为什么它的飞行量不一样呢?尝试改变脉冲以匹配比例,但它不起作用,是的,它飞行的距离更短 - 但它不是一对一的比例。

棘手的问题...

感谢您的想法。

0 投票
7 回答
31491 浏览

ios - 如何在 Sprite-kit 中画一条线

如何在 Sprite-kit 中画一条线?例如,如果我想在 cocos2d 中画一条线,我可以很容易地使用 ccDrawLine();

sprite-kit 中是否有等价物?

0 投票
1 回答
1514 浏览

ios7 - SK场景过渡背景

我刚刚开始学习如何使用 xCode 尤其是新的 SpriteKit 进行编程。所以请记住,我对此有点陌生。

我设法通过按标签移动到不同的场景,但不知何故,我的场景背景完全出错了。背景应该和第一个场景一样,但它给了我一个带有两条单杠的背景。我认为我没有做错任何事,因为我刚刚复制了将背景设置为第二个场景所需的代码。

第一个场景:http: //imageshack.us/photo/my-images/23/kyud.png/

第二场:http: //imageshack.us/photo/my-images/198/472h.png/

我的代码用于设置两种背景:

过渡通过以下方式完成:

}

PS:当背景实际尺寸为 480x320 时,为什么我必须将其缩放到 0.7,我觉得很奇怪。

0 投票
1 回答
4295 浏览

ios - SKSpriteNode 子类和触摸事件

我不明白为什么如果我将实现 UIResponder 协议的 SKSpriteNode 子类化,那么与触摸相关的方法永远不会被调用。

例如,这是一个非常简单的类,我将其用作测试:

如果我将此类的一个实例附加到场景中,触摸对象......什么也没有发生。

我是不是忘记了什么?

0 投票
2 回答
482 浏览

ios7 - 检查 SKPhysicsBody 何时停止移动?

无论如何计算何时SKPhysicsBody停止(或者更确切地说它的速度变得非常小),以便您可以将其从物理模拟中移除。我试过观察速度,但有两个问题。(1)在任何给定的反弹中,在顶点处有一个点,对象的速度很小,(2)当SKPhysicsBody明显完成反弹时, velocity.dy仍然显示一个相当大的数字(即 30+),即使对于所有意图身体现在处于休息状态。只是好奇是否有任何我可能遗漏的东西来检查身体何时不再移动?

0 投票
1 回答
14143 浏览

core-graphics - 在 Spritekit 中用两种颜色绘制矩形/圆形和三角形。. .

我可以使用简单的 SKSpriteNode 绘制矩形。但我无法在其中绘制其他类型的图纸,例如具有两种分色的三角形、圆形等。有人建议使用 CGPath。但我是新手,不知道画这种复杂的东西。请任何人都可以用 SPRITEKIT 中的 MULTICOLOR 说明使用这些图纸的简单方法。表示它们的上部是一种颜色,下部是第二种颜色。更简洁地说,Shape分为两种颜色,无论是星形、矩形、三角形还是其他颜色。任何帮助将不胜感激。

谢谢 。