草庐IT

ios - Sprite 套件,从内存中移除动画纹理

我在游戏加载时在我的ViewController中初始化了大约30个动画纹理,如下所示:fori=0;i基本上,我将所有动画放入一个数组中,这样我就可以轻松访问它们。在游戏过程中,这些动画中的每一个都会出现很短的时间,当我不需要它们时,我使用.removeFromParent()将其删除,但问题是它仍然保留在设备的内存中因此,一旦大约15-20个动画出现在游戏中并进入内存,它就会达到大约450-500MB,并导致游戏在iPhone4和4s上崩溃。有谁知道我怎样才能真正从内存中删除该动画,以便它不再需要时不再占用空间? 最佳答案 Sp

sprite-kit - iOS SpriteKit - 碰撞和接触未按预期工作

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭6年前。Improvethisquestion有时在我的SpriteKit程序中,我的碰撞和接触(使用SKPhysicsBody)不会按预期触发或工作。我想我已经设置了我需要的一切,但我仍然没有得到正确的交互。是否有一些我可以编写的代码来检查什么会与什么发生碰撞,以及什么物体被设置为生成接触?

swift - Sprite Kit 中的单向平台碰撞

我正在用Swift制作一个DoodleJump克隆游戏,问题是当玩家跳跃时,它的头撞到了平台底部并且没有通过。我怎样才能让玩家越过平台并跳过它们?我的代码在这里:importSpriteKitclassGameScene:SKScene,SKPhysicsContactDelegate{varhero=SKSpriteNode(imageNamed:"hero");varstepSizeTest=SKSpriteNode(imageNamed:"step");varstart=false;varjumpSpeed=CGFloat(0);vargravity=CGFloat(0);var

ios - 是否可以将 physicsbody 仅定位到 Sprite 的一部分?

是否可以在sprite上放置物理体?我只希望Sprite节点的某个部分进行碰撞检测,而不是整个图像。这是我的物理bodyphysicsBody=SKPhysicsBody(rectangleOfSize:CGSize(width:CGFloat(54.0),height:CGFloat(100.0)))但我想将物理体放置在节点的顶部,它通常被放置在节点的中间。 最佳答案 您可以尝试创建一个与SKPhysicsBody大小相同的较小的SKSpriteNode并将较大的SKSpriteNode作为子节点添加到较小的.根据需要更改较大的位

ios - 如何关闭 Sprite 套件节点纹理的抗锯齿

我目前正在尝试将测试游戏放在SpriteKit中。我有一些代码使用一对尺寸为200*572的PNG图像创建一block地面。lettextures=[SKTexture(imageNamed:"GrassAni1"),SKTexture(imageNamed:"GrassAni2")]for(vari=0;i输入我的问题。这是Xcode文件查看器中我的Sprite的特写:这是游戏运行时的样子:游戏中的Sprite似乎是抗锯齿的,因此看起来很模糊。如何防止这种情况发生并使游戏看起来像原始图像一样清晰? 最佳答案 您需要将SKTextu

ios - 使用捏合手势调整 Sprite Kit 节点大小

我正在尝试实现捏合手势识别器来调整Sprite节点的大小。我正在使用setScale(sender.scale)来做到这一点,但每次我抬起手指并尝试再次捏合时,我的Sprite会重置为1.0比例,然后再次缩放到捏合。我想要的是,当我重新捏合屏幕时,Sprite大小保持不变,当我捏合时它变大或捏合时变小,所以我可以继续捏合使它变大或变小尽可能小。如何做到这一点?这是我的代码。varpizza=PizzaSprite()overridefuncdidMove(toview:SKView){letpinchGesture=UIPinchGestureRecognizer(target:sel

ios - 如何在 Sprite Kit/Swift 中将文本环绕成一个圆圈

我正在使用SpriteKit/Swift制作游戏,我想对菜单场景产生影响,我将一根绳子绕着一个圆圈弯曲。下图几乎正是我想要完成的。http://www.heathrowe.com/tuts/typeonaapathimages/4.gif 最佳答案 下面的代码通过为字符串中的每个字符创建一个标签节点,将标签的位置设置到圆上的适当位置,然后旋转每个标签,将字符串中的字符环绕在圆的上半部分节点,使其在该位置与圆相切。classGameScene:SKScene{overridefuncdidMove(toview:SKView){let

swift - 如何在 sprite kit 中复制一个 sprite 并让它们表现不同

我一直在开发一款IOS手机游戏,我想复制一个对象,然后让副本在整个屏幕上移动。我通过谷歌查看了与此相关的内容,但它们都在ObjectiveC中,或者只是没有我要找的东西。我想知道如何在Swift和SpriteKit中做到这一点。 最佳答案 如果您正在使用SKSpriteNode,您可以复制它及其所有当前属性:letcopiedNode=nodeToCopy.copy()as!SKSpriteNode您仍然需要将copiedNode添加到您的场景中。copiedNode还将继续运行nodeToCopy正在运行的任何操作。您可以使用co

ios - 使用 Swift 在 Sprite Kit 中构建棋盘游戏?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestion在使用Swift的SpriteKit中,我正在尝试构建一个棋盘(实际上是一个类似国际象棋的棋盘/方block网格)。所以一般来说,我应该如何制作方形网格板?我做了很多研究,并通过多维数组研究了一些类似国际象棋棋盘的高级概念的例子,但它仍然没有真正解释如何在SpriteKit中直观地表示它,更重要的是,如何将视觉表示映射到多维数组中的字母+数字表示...有什么想法吗?如果有人能至少回答上述问题中的一个点/部

swift - 使用 SKShapeNode 在 Sprite Kit 中绘制虚线

IfountthissolutionbutIcan'tmakeitintoswiftcode这是我的尝试varpattern[2]:CGFloat;thisvardashed:CGPathRef=CGPathCreateCopyByDashingPath(CGPathCreateCopyByDashingPath(path,transform,phase,lengths,count);varmyShapeNode:SKShapeNode!;varCGPathCreateCopyByDashingPath:CGPathRef; 最佳答案