问题标签 [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.
ios - Ellipse SKPhysicsBody
我将使用哪种 SKPhysicsBody 身体类型来创建椭圆物理身体?
我知道我可以用直线制作一条曲线,只是让它不是一个真正的椭圆,但似乎必须有某种方法来挤压一个圆或创建一个圆?
objective-c - 平铺背景:并非所有精灵都出现
我正在尝试创建一个具有平铺背景的场景,在该背景上将存在用户可以选择的可用级别,并且他/她将能够平移背景以查看所有级别。
因此,正如教程中的 iOS 游戏中所建议的那样,我创建了一个SKNode *_backgroundLayer
可以容纳所有瓷砖以及任何其他可以放在上面的东西。这将允许我SKNode
四处移动,它的所有孩子都会随之移动。伟大的。现在,我的图块450x450 pixels
如此计算,我需要 9 个图块,_backgroundLayer
我使用下面的代码添加它们。
我不明白的是:它加载并定位了必须出现在我的屏幕上的前两个图块,它似乎没有加载其余部分!在模拟器的“x 节点”中,它说它有 2 个节点,而不是 9 个。它是否创建节点然后删除它们,因为它们最初不在我的 iPhone 屏幕内?我不明白。关于如何解决这个问题并解决它的任何想法?
更新:在我的 iPad Retina 中,我得到 6 个节点而不是 9 个,那么为什么它只加载和保留可以在屏幕上显示的节点,而不是我在下面的代码中要求的所有节点?
UPDATE2: NSLog(@"%d", _backgroundLayer.children.count); 确实返回 9。我很确定我在使用 UIPanGestureRecognizer 时做错了什么。我移动了错误的图层吗?
谢谢!
objective-c - UIPinchGestureRecognizer 故障
好的,我已经阅读了一些关于这个的帖子(例如UIImageView Gestures (Zoom, Rotate) Question),但我似乎无法解决我的问题。
我有以下设置:一个 SKScene、一个 SKNode _backgroundLayer 和 9 个 SKSpriteNode,它们是构成背景并附加到 _backgroundLayer 的图块。由于这 9 个图块构成一个 3x3 正方形并且它们非常大,因此我需要能够放大并查看将位于这 9 个背景图像之上的其他 SKSpriteNode。
有两个问题:1)当我捏放大或缩小时,它似乎是从 _backgroundLayer 的位置(0,0)而不是从触摸位置放大/缩小。
2)我添加了一些边界,以便用户无法滚动出 9 个背景图像。一般来说,它有效。但是,如果我放大然后移到 9 个背景图像的顶部,然后缩小边界条件,就会发疯,用户可以看到背景图像之外的黑色空间。我需要一种方法来限制用户可以根据他所在的位置进行的缩小量。
有任何想法吗?谢谢!
我在下面包含我的代码:
objective-c - -(void)didBeginContact 没有被调用。想法?
它永远不是 NSLogging 任何东西。我尝试过更改位掩码等等。CGRectIntersects 函数可以工作,但它不够准确。此外,这两个节点是完美的盒子形状。我可能做错了什么?先感谢您!
ios - 使用 Sprite Kit 绘制多个相同的精灵作为背景
所以我想做的是使用一个支架(SKSpriteNode * sprite)并从一组三个精灵中加载:珊瑚水基地。
我打算做的是基于先前创建的 NSMutableArrays,在 iPad 屏幕上的位置绘制该特定纹理,例如:
位置 1,6:水 位置 5,18:珊瑚。
正在发生的问题是它只绘制一个纹理而没有其他纹理。有什么解决办法吗?我应该以不同的方式解决这个问题吗?
ios - 单个 SKSpriteNode 上的多个碰撞矩形
如何使用单个SKSpriteNode制作多个碰撞矩形?就像我正在尝试开发一个概念,其中一些水果从天上掉下来,一个篮子必须收集它们。
所以当水果撞到篮子的一侧时,它会产生基于物理的反应,就像它会根据它的质量和重量朝着某个方向向右或向左下落。当水果碰到篮子的中心时,它会进入篮子或消失。为此,我必须在 SKSpriteNode 周围有多个物理矩形。我怎样才能做到这一点?
ios - IOS:无法获得正确的屏幕尺寸
我尝试显示一些SKNodes
,并使用屏幕的宽度和高度来设置它们的位置,以使它们与不同的屏幕尺寸兼容。
但是当我以不同的屏幕尺寸运行程序时,节点的位置仍然会发生变化(3.5 英寸很好,但 4 英寸错误)。我发现这self.size.height
不是屏幕的实际高度。
有谁知道如何解决这个问题?
ios - 我应该使用什么预加载精灵的方法?
我知道你可以通过在游戏开始时创建精灵节点来预加载精灵节点,但是有没有更有效的方法呢?
ios7 - 如何在 SKNode 之间移动 SKSpriteNode
我想将 SKSpriteNode 从一个 SKNode 移动到另一个。removeFromParent 方法实际上解除了精灵的分配。
例如,在这段代码中,MySprite 是 SKSpriteNode 的一个子类,带有一个输出字符串的 dealloc 自定义方法,只是为了让我知道该对象已被释放:
在这种情况下,精灵被释放。我认为即使在调用 removeFromParent 之后,对 sprite 的强引用也应该使其保持活动状态,但事实并非如此。
但是如果我取消注释 [self addChild:node2]; 精灵没有被释放。
我在这里很困惑。如果 removeFromParent 释放了对象,则 sprite 应该是 nil 并且我应该得到一个错误,将 nil 节点添加到父节点。不是吗?文档只是说 removeFromParent:“从其父节点中删除接收节点。” 但它没有说明这里是如何管理内存的。
objective-c - SKSpriteNode 多个纹理
SKSpriteNode
由多个图像组成的最佳方法是什么?
我发现它[SKTexture textureWithImage:image];
不使用 scale 属性(当我将它与自定义位图组装图像一起使用时,我有一个小的SKSpriteNode
)。
也许我可以在倍数之间创建一个链接,SKSpriteNode
但我不确定这对于碰撞检测是否是一个好主意。
编辑:
适合我的解决方案。
此代码采用 3 个纹理,将它们绘制在GraphicsContext
创建UIImage
.
然后我把它添加UIImage
到我SKNode
现在有多个纹理的地方。但是,在我的情况下指定size 属性非常重要。如果不这样做,节点将使用错误的比例因子,并且您将拥有小纹理(非视网膜)。SKNode
[self setSize:CGSizeMake(WIDTH_HERO, HEIGHT_HERO)];