草庐IT

ios - 在 Sprite 工具包中将文本写成一个圆圈(swift)

我想画一个圆圈,然后在里面放一段文字。我能做什么?如果我移动或调整圆圈的大小,文本也会移动或调整大小varcolor=UIColor(red:0x00,green:0x44,blue:0x44,alpha:1)varCircle=SKShapeNode(circleOfRadius:100)Circle.position=CGPointMake(frame.midX,frame.midY)Circle.strokeColor=SKColor.blackColor()Circle.glowWidth=1.0Circle.fillColor=colorletmyLabel=SKLabelN

sprite-kit - 我如何在 Swift 和 SpriteKit 中使用 whiteColor

我正在运行Yosemite和Xcode6。我使用“游戏”选项、SpriteKit和Swift创建了一个新项目。在GameScene.swift的didMoveToView()覆盖中,我添加了以下行以尝试更改背景色:self.backgroundColor=SKColor(whiteColor)这会编译但不会运行,并因错误“使用未解析的标识符‘whiteColor’”而停止唯一的导入是:importSpriteKit我是否需要另一个导入来定义whiteColor(我假设它是某处头文件中的常量? 最佳答案 +[SKColorwhiteC

ios - 如何平铺 Sprite 节点的纹理?

使用SpriteKit,我如何平铺水平重复自身的SKTexture以填充SKSpriteNode的宽度?这是我目前所拥有的-仅拉伸(stretch)纹理。varheader=SKSpriteNode()letheaderTexture=SKTexture(imageNamed:"inGameHeader-1.png")header=SKSpriteNode(texture:headerTexture)header.position=CGPoint(x:0,y:CGRectGetMaxY(self.frame)-39)header.size.width=CGRectGetWidth(se

swift - 如何使用gameplaykit将 Sprite 分配给场景编辑器中的实体

我目前正在使用我自己的实体系统开发一款我正在开发的游戏,但我刚刚了解了skentity和skcomponent的游戏工具包用法。这似乎是一个好的设计模式,我想学习如何使用它。到目前为止,我一直在学习本教程:https://www.raywenderlich.com/155780/gameplaykit-tutorial-entity-component-system-agents-goals-behaviors-2它在如何使用它方面非常详细,但是我想知道,如果不是在gamescene.swift文件中创建实体,我可以在编辑器中这样做吗?目前我正在对大多数游戏元素进行子类化,所以我可以在

ios - FPS 下降和游戏变慢 - Sprite-Kit 和 Swift

我有一个使用Sprite-Kit和Swift的游戏,我在其中生成从屏幕顶部落到屏幕底部的随机圆圈。启动游戏时,它一开始运行得很好(大约60FPS或更低),但随后FPS逐渐下降,游戏变得非常慢......我不明白为什么FPS随着时间下降(节点数量保持在8-10左右,因此当它们离开屏幕时会被删除)——我在iOS模拟器和实际设备上测试过它,有什么想法吗?我已经检查过,问题不是来自内存泄漏。另外,我只使用一个ViewController。我认为可能导致此问题的唯一功能是这个,但我不知道为什么:/*Functiontogeneratesinglerandomcircle*/funcgenerat

ios - 在 Sprite Kit 中拖动一个对象与另一个对象碰撞时不会发生弹跳

Here是我遇到的问题的视频。正如您在视频中看到的那样,我移动了一个灰色的球,试图与一个红色的球碰撞。当两个物体碰撞时没有弹跳发生,红球只是移动。我试过调整红球的密度,比如让红球的密度为0.00001。碰撞行为没有差异。如何更改碰撞行为以产生弹跳?这是灰色球的属性:funcpropertiesGrayBall(){gray=SKShapeNode(circleOfRadius:frame.width/10)gray.physicsBody=SKPhysicsBody(circleOfRadius:frame.width/10)gray.physicsBody?.affectedByGr

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作为子节点添加到较小的.根据需要更改较大的位