草庐IT

SkSpriteNode

全部标签

ios - 如何知道哪个 SKSpriteNode 受到 Swift 中碰撞检测的影响?

情况:我的iOS屏幕上有两艘或更多艘飞船。两者都有不同的属性,如名称、大小、生命值和得分点。它们显示为SKSpriteNodes,并且每个都添加了一个physicsBody。目前这些额外的属性是扩展的SKSpriteNode类的变量。importSpriteKitclassship:SKSpriteNode{varhitpoints:Int=nil?varscore:Int=nil?funccreatePhysicsBody(){self.physicsBody=SKPhysicsBody(circleOfRadius:self.size.width/2)self.physicsBod

swift - 在 Swift 3 中获取 SKSpriteNode 的文件名

如何从SKSpriteNode访问图像文件名?我一直在尝试用谷歌搜索这个,但似乎没有答案。这是我的代码中无用的部分:current_ingredient?.name=String(describing:current_ingredient?.texture)print("Filename:\(current_ingredient?.name)")打印命令返回:Filename:Optional("Optional(\'ingredient14\'(110x148))")那么,问题是,我如何才能只获得“ingredient14”? 最佳答案

ios - SpriteKit : How can I get the pixel color from a point in SKSpriteNode?

我正在制作一个迷宫游戏,我正在使用SKSpriteNode作为实际的2d迷宫。我想检测用户触摸的SKSpriteNode上的点是黑色还是白色。我制作了一个与SKSpriteNode相同的图像的UIImage,并且我在UIImage上使用一种方法来获取像素信息。但是,与SKSpriteNode相比,UIImage似乎有所偏移。当我在屏幕上移动手指时它返回值,但它是不正确的。我猜UIImage的大小和位置与SKSpriteNode不同。我该如何解决这个问题?我使用以下方法获取像素数据extensionUIImage{funcgetPixelColor(pos:CGPoint)->UICol

swift 3 (SpriteKit) : Locking the x axis of a SKSpriteNode and its physicsBody

我真的需要知道如何锁定SKSpriteNode及其physicsBody的x轴。我需要保持SKSpriteNodedynamic和affectedByGravity。该节点位于斜坡上,因此这就是它的x轴因重力而移动的原因。但是,我不希望此SKSpriteNode的x轴因重力而移动。有没有办法锁定x轴以实现此目的?感谢您的帮助:D编辑:我试过像这样对x值应用约束:letxConstraint=SKConstraint.positionX(SKRange(constantValue:195))node.constraints?.append(xConstraint)但是这不起作用,我不确定

ios - 使用 swift 和 spriteKit 如何围绕节点外部的点旋转 SKSpriteNode?

如何在SpriteKit中围绕任意点旋转节点?我已经用谷歌搜索了一个答案“创建一个SKNode并将其位置设置为旋转中心。将应该围绕该中心旋转的节点作为子节点添加到中心节点。将子节点的位置设置为所需的偏移量(即半径,比如x+100)。更改中心节点的旋转属性,使子节点围绕中心点旋转。cocos2dbtw也是如此。”但我真的不明白如何用代码写这个:(。我是swift的新手,这看起来很难。有人能帮我写代码吗? 最佳答案 经过几个小时的试验,我这样做了。varfish:SKSpriteNode=SKSpriteNode(imageNamed:

swift - 如何用 SKPhysicsBody 复制 SKSpriteNode?

我很好奇我今天在尝试取消存档并将SKSpriteNode从一个SKScene复制到另一个时遇到的情况。在下面playground的输出中,您可以看到linearDamping和angularDamping或在复制后没有得到维护(它们似乎正在回落到默认值)//PLAYGROUND_SW1.2-SKSpriteNodeCopyimportUIKitimportSpriteKit//ORIGINALletspriteNode=SKSpriteNode()spriteNode.name="HAPPY_NODE"letsize=CGSize(width:55.0,height:150.0)let

ios - SkSpriteNode在通用游戏中的位置

我正在使用Swift以纵向模式为所有iOS设备创建通用游戏。在GameViewController中,我正在创建这样的场景:letscene=GameScene(size:CGSize(width:1536,height:2048))scene.scaleMode=.AspectFill背景图像的分辨率为1536x2048,因此在iPad上使用abovescaleMode时,它​​会以完整尺寸显示,在iPhone6上显示为1152x2048时会修剪边。在所有设备上都能完美运行,只需要一张背景图片。问题是,如果我调用size.width或self.frame.size.width它总是返

ios - 带有 UIImage 的 Swift SKSpriteNode

我在使用UIImage创建SKSpriteNode时遇到了问题。我正在使用PaintCode创建我用于我的应用程序的Assets(PaintCode创建一个带有绘图方法和图像方法的Swift文件,允许我显示创建的图像)。我现在的问题是我想使用我的PaintCode图像创建一个简单的SKSpriteNode,但我不知道如何将它们添加到SpriteNode。我试过这样的事情(第18行):letBottom=SKSpriteNode(texture:SKTexture(image:StyleKitName.drawBottom(frame:CGRect(x:50,y:50,width:50,

swift - 如何将 child SKSpriteNode 定位在他们的 parent 里面

我不是很懂子节点定位的逻辑。可以说我有一个矩形。如果我没有改变它的anchor,默认情况下子节点会出现在中间。但是如何将它定位在矩形的左上边缘呢?还是右下角?我试过了child.zPosition=1child.position.y=rect.size.height/2rect.addChild(child)但它并没有被Y轴定位在中间。它在顶部的某个地方。我应该使用什么工具将子节点定位在其父节点周围/内部? 最佳答案 SpriteKit中默认的anchor是(0.5,0.5),这是一个节点/Sprite的中心。(0,0)是左下角,(

ios - 如何在没有抗锯齿的情况下缩放 SKSpriteNode

我试图在没有平滑/抗锯齿的情况下缩放SKSpriteNode对象(我使用的是像素艺术,因此像素化效果更好)。我需要设置一个属性来执行此操作吗?这是我用来渲染Sprite的代码:SKTextureAtlas*atlas=[SKTextureAtlasatlasNamed:@"objects"];SKTexture*f1=[atlastextureNamed:@"hero_1.png"];SKSpriteNode*hero=[SKSpriteNodespriteNodeWithTexture:f1];[selfaddChild:hero];hero.scale=6.0f;图像缩放正确但模糊