草庐IT

SkSpriteNode

全部标签

swift - 5 秒后删除 SKSpriteNode

如何在我的函数中像这样在5秒后删除我的SKSpriteNode。我尝试使用一个名为func的NSTimer删除我的BonusSprite但5秒后我的应用程序崩溃了:lettimerApparitionBonus=NSTimer.scheduledTimerWithTimeInterval(13,target:self,selector:Selector("ApparitionBonus"),userInfo:nil,repeats:true)}funcApparitionBonus(){varBonusApparitionX=UInt32(self.frame.size.width)v

ios - 我如何获取并删除 SKNode 的父节点?

SKSpriteNode有一个父节点,它是随机分配的,并且不知道它是谁。那个SKSpriteNode如何找到它的父节点,然后从场景中移除父节点,从而移除它自己和父节点? 最佳答案 如果您仔细阅读文档,您会发现一个名为removeFromParent的方法在SKNode类中。只需调用它:yourSpriteNode.removeFromParent()或者,如果您想在一系列SKAction之后从其父节点中删除节点,您可以使用SKAction.removeFromParent().letremoveFromParentAction=SK

ios - PhysicsBody 是零使用 SpriteKit 和 Swift

我有一个正在构建的SpriteKit游戏,我正在从一个多维数组中加载一个关卡。loadlevel函数第一次工作。如果我在physicsBody赋值上方执行physicsBody的println(在physicsBody初始化之后),它确实会失败。当我第二次使用removeChildrenInArray删除所有图block时,我运行加载级别时它会抛出一条错误消息,提示fatalerror:unwrappinganOptionalunwrappedlyfoundnil并且它指向右下方的行下面的println。println表示physicsBody是nil。在我看来,没有理由将新初始化的P

ios - Swift SKSpriteNode 位置 iPhone V iPad

我使用以下代码在我的应用程序View的左上角放置了一个节点:health=SKSpriteNode(color:.green,size:CGSize(width:progressValue,height:50))health.position=CGPoint(x:-self.frame.width/2,y:self.frame.height/2)这个位置在所有iPhone模拟器中都是正确的,范围从5到7Plus。但是,它不会出现在任何iPad模拟器中。我已将位置设置为midX和midY,它看起来很好,只是上面显示的代码不适合所有iPhone。我错过了什么?对于iPhone和iPad,是

swift - 将一个 SKSpritenode 移向另一个 SKSpriteNode(磁铁)

我的目标:让一个SKSpriteNode移动到另一个SKSpriteNodes的位置。(为我的spritekit游戏创建磁铁)嗨,我正在尝试让多个同名的SKSpriteNode移动并与一个我将称之为磁铁的Sprite节点发生碰撞我只是不明白我将在哪里或如何去做这件事,我已经尝试过使用这段代码,但我不知道该怎么做:funcupdate(_currentTime:TimeInterval){letnode=childNode(withName:"specialObstacle")letmagnetLocation=magnet.positionletspecialObjectLocatio

ios - 使用 SKLabel 文本裁剪 SKTexture

为了在SpriteKit中创建一个按钮,我创建了一个带有SKShapeNode的圆角矩形,然后在其顶部放置了一个SKLabel。看起来像这样:我想让标签下的背景随着它下面的内容而改变。所以在图片中,T、E和A的一半是紫色的。有什么方法可以中途给字体上色吗?或者以某种方式裁剪带有放置在其上的SKLabel的白色矩形纹理。这样就没有标签,而是从纹理中切出标签。基本上,我希望字体颜色是它后面的颜色。我必须在不导入图像和以某种方式通过代码的情况下执行此操作。 最佳答案 Knight0fDragon的评论很有道理,这个建议不错。在没有text

ios - SKSpriteNode 之间出现奇怪的间隙 - swift

注意:我试过这个答案:GapbetweenSKSpriteNodesinSpriteKitcollisiondetection在让我的游戏运行5分钟后,我的SKSpriteNode之间出现了间隙。这是我制作节点的代码:lettileNode=SKSpriteNode(imageNamed:"world1Tile\(tileNumber).png")tileNode.position.x=xtileNode.position.y=ytileNode.size.width=128tileNode.size.height=128tileNode.zPosition=10tileNode.ph

swift - 如何避免SpriteKit中的平滑效果?

我正在使用非常小的sprite,以创建具有像素化sprite的复古游戏。但是,当我更改Sprite的比例以使它们变大时,SpriteKit会平滑Sprite,这不是我想要的。有什么方法可以在我增加Sprite的比例时保持其像素化? 最佳答案 您可以使用纹理过滤模式.Nearest(默认为.Linear)。当纹理以其原始大小以外的大小绘制时,可以使用纹理过滤模式。SKTextureFilteringNearestEachpixelisdrawnusingthenearestpointinthetexture.Thismodeisfas

ios - 检测 Sprite 纹理内的触摸而不是整个框架 iOS Swift SpriteKit?

我现在正在使用SpriteKit,我遇到了一个看似简单但在互联网上找不到任何问题的问题。我有三个形状像平行四边形的按钮,它们堆叠在一起,看起来像这样:Screenshotofbuttonsletbutton=SKSpriteNode(imageNamed:"playbutton")letleaderButton=SKSpriteNode(imageNamed:"leaderbutton")lethomeButton=SKSpriteNode(imageNamed:"homebutton")button.position=CGPoint(x:size.width/2,y:size.hei

swift - 如何检测触摸了哪个 SKSpriteNode

我找到一个similarquestion,但我正在尝试检测和识别用户触摸了哪个Sprite,但我不知道该怎么做。这是我的变量:varsprites:[[SKSpriteNode]]=[[SKSpriteNode(imageNamed:"a"),SKSpriteNode(imageNamed:"b")],[SKSpriteNode(imageNamed:"c"),SKSpriteNode(imageNamed:"d")]]想法是识别spriteNode,然后将其替换为其他sprite或更改颜色,但我不知道如何使用这个spriteNodes矩阵来实现,我想第一步是识别sprite。