草庐IT

swift - 通过 SKNode 子类更新 SKLabel 文本

我的目标:将Achievements类的amount变量加一,然后更新文本,使其显示在名为“AmountLabel”的SKLabelNode上所以我有一个SKNode的子类来保护我的SKSpriteNode,它显示成就的标志和成就标题的SKLabelNodes以及解锁成就所需的数量如下所示:classAchievements:SKNode{varachievementLabel=SKLabelNode()varachievementTitleLabel=SKLabelNode()varachievementNode=SKSpriteNode()varamount=0varneededA

swift - 我的自定义 SKNode 未调用 onTouchesBegan()

我正在尝试为我的游戏设计我自己的DPad,但由于某些原因我的onTouchesBegan()没有被调用。我探索了一下,我认为这是因为我的self.frame.size出于某种原因等于(0,0)即使在我添加了我的子节点(上、下、左、右节点)。我猜因为大小是0,所以没有什么可以检测到触摸。我在这里做的事情有什么明显的错误吗?我唯一能想到的可能是因为按钮是SKLabelNodes?但我打印了它们的尺寸,它们都>0。protocolDPadDelegate{funcupTapped()funcdownTapped()funcleftTapped()funcrightTapped()}openc

ios - 有没有一种简单的方法可以从图像中绘制 SKnodes 障碍物的坐标?

我正在创建一个游戏,我需要根据级别(背景图像)在(SKNodes)中绘制一些障碍。假设我有一棵树,我想在它周围绘制边框,如下图所示:我需要坐标来创建一个physicsBody。有什么简单的方法吗?(也许是软件?)我需要为不同的设备调整相同的坐标,因此我认为手动操作太复杂了。有什么想法吗?谢谢! 最佳答案 有一个SKPhysicsBody类方法可以提供帮助:+bodyWithTexture:size:来自描述:Usethismethodwhenyourspritehasashapethatyouwantreplicatedinitsp

swift - 如何在 spritekit 中获取 PhysicsBody SKNode 的方向

我有一个应用了脉冲的SKNode。有没有办法知道每次的方向?它碰撞了很多物体,我想实时知道他的方向是哪个。 最佳答案 试试这个:yourPhysicsBody.velocity这应该返回物理体在任何给定时间的速度CGVector。 关于swift-如何在spritekit中获取PhysicsBodySKNode的方向,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/31928971

ios - SK节点!不可转换为 "SKNode"

我遇到了这个问题,但无法解决,我不太理解解包变量的文档varladybug:SKNode=SKNode.childNodeWithName("ladybug")错误:(字符串!)->SKNode!不可转换为“SKNode”谢谢 最佳答案 childNodeWithName不是类方法。您在实例上调用它,而不是SKNode类本身。如果您在SKScene子类中编写此代码,您要调用此方法的实例可能是self。 关于ios-SK节点!不可转换为"SKNode",我们在StackOverflow上找

ios - 从 SKNode 访问 SKView 方法

在SpriteKit开发中,应该如何访问SKView?例如;假设我创建了一个名为Player的自定义SKNode类以在我的整个游戏中使用:classPlayer:SKNode{/*...*/}在这个类中,如果我想从SKShapeNode生成一个SKSpriteNode(为了提高性能)我需要使用SKView.texture()方法。但是我无法访问我的Player所在的SKView,除非我将View从实例化它的人那里传递给Player。有什么方法可以获取附加了SKNode的当前View,这样我就不必在我的应用程序周围传递对View的引用了吗?这只是框架的异常吗?处理此问题的首选方法是什么?

swift - Xcode 6.3 和 Swift 1.2 中的新警告 : Cast from '[SKNode]' to unrelated type 'String' always fails

更新到xCode6.3/Swift1.2后,我遇到了一个我无法解决的错误:“从‘[SKNode]’转换为不相关的类型‘String’总是失败”。下面是我的GameScene代码,它从解析p-list开始。importSpriteKitclassGameScene:SKScene,SKPhysicsContactDelegate,NSXMLParserDelegate{varcurrentTMXFile:String?overridefuncdidMoveToView(view:SKView){/*Parsep-list*/letpath=NSBundle.mainBundle().pa

ios - SKNode 在 SKConstraint 范围内跟随另一个 SKNode

我正在尝试使用SpriteKit模拟一只眼睛。当用户的手指在屏幕上移动时,眼睛的瞳孔会跟踪用户的手指,但必须保持在眼睛的范围内。我曾尝试使用SKConstraint解决此问题,但未成功。编辑我的想法是对瞳孔应用SKConstraints以限制其边界到眼睛。任何触摸(即touchesMoved()等)都将以SKAction.moveTo()的形式应用于瞳孔,并且SpriteKit会处理将瞳孔保持在眼睛范围内。lettouchPoint=CGPoint()SKAction.moveTo(touchPoint,duration:2)视频代码可用:https://gist.github.com

swift - SpriteKit - 获取 SKNode 的绝对大小

我正在用Swift和SpriteKit编写一个小游戏,它由一个盒子(4*8)组成。Scene(1024*768)boxes(964*452)row1(932*25)col1(24*116)col2(24*116)col3(24*116)...row2...我想给他们一个纹理,但我不知道图像文件应该有多大。盒子节点的大小似乎是相对于其父节点的。如何获取SKNode的绝对大小,即节点在屏幕上的大小? 最佳答案 所有SKNode都有一个名为calculateAccumulatedFrame的方法

ios - SKNode.removeFromParent() EXC_BAD_ACCESS

我注意到我的Swift项目中有一个奇怪的行为,并以这种方式在一个空的SpriteKit项目中重现了它:classGameScene:SKScene{overridefuncdidMoveToView(view:SKView){letsprite=SKSpriteNode(imageNamed:"Spaceship")self.addChild(sprite)//sprite.removeFromParent()letsprite2=SKSpriteNode(imageNamed:"Spaceship")self.addChild(sprite2)sprite2.removeFromPa