Tag: sprite kit

SpriteKit iPhone / iPad不同的分辨率,需要相同的物理

当我移植一个使用SpriteKit到iPad的iPhone应用程序时,我可以使用iPhone 5到iPad屏幕的高度比例缩放所有屏幕元素和字体大小。 一切看上去都是成比例的,除了物理因为有更多的面积。 所以问题是,如何使用该高度比例来与物体一起缩放物理? 也许改变所有节点的密度或质量? 我该怎么做,math上使用的比例,以便它是完美的?

何时在xCode 6.4中使用带有SpriteKit的didMoveToView或initWithSize

由于xCode已更新至6.0版,因此“GameScene”(所创build的默认场景)中的SpriteKit的默认方法更改为: -(void) didMoveToView:(SKView *) view { /* Scene set up in here */ } 与以前的方法相反: -(id) initWithSize:(CGSize) size { if (self = [super initWithSize:size]{ /* Scene set up in here */ } } 我知道新的方法(与视图控制器中的更改一样)用于帮助pipe理从xCode 6中新增的.sks文件导入。但是,我好奇我是否不想使用新的“storyboard”格式即.sks文件,我还应该使用新的方法吗? 或者我应该改变方法回到initWithSize方法,只是删除.sks文件?

混乱:SKSpriteNode和SKTexture的区别。

我对SKSpriteNode&SKTexture节点感到困惑。 我已经在教程中看到SKSpriteNode可以用来添加像[SKSpriteNode spritenodewithimagename:@“someimag”]; 和SKTexture一样,SKTexture也是如此[SKTexture texturewithimge / file]; 纹理和图像有什么区别。 如果我们使用SKSpriteNode添加图像,那么使用SKTexture的原因是什么,或者如果我们使用SKTexture和Texture集合,那么为什么我们添加图像被添加到SKSpriteNode中。 有混乱,两者有什么不同。

Sprite Kit中可重复使用的multithreading实现

我正在做一个Sprite Kit游戏,我需要做一些multithreading来保持健康的fps。 在更新时,我调用一个函数来创build大量的UIBezierPaths,并使用C ++静态库合并它们。 如果我有超过10个形状的帧速率急剧下降,所以我决定给GCD尝试并尝试用单独的线程来解决这个问题。 我把这个放在didMoveToView: queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); 并在每帧被调用的函数中,我称之为: dispatch_async(queue,^(void){[self heavyCalculationsFunc];}); 对于那些了解GCD的人来说,这可能是显而易见的,它会在每个框架上创build一个新的线索,但是对于我来说还不清楚。 我的问题是,是否有任何方法来重新使用我想调用更新的线程? 感谢您的帮助提前!

暂停应用程序启动/退出spritekit游戏.. iOS8

我已经阅读了关于这个主题的所有内容,但仍然无法解决我的问题。 我已经尝试在appdelegate的每个区域暂停我的游戏 func applicationWillResignActive(application: UIApplication!) { NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self) } func applicationDidEnterBackground(application: UIApplication!) { NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self) } func applicationWillEnterForeground(application: UIApplication!) { NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self) } func applicationDidBecomeActive(application: UIApplication!) { NSNotificationCenter.defaultCenter().postNotificationName("pauseGameScene", object: self) } 在我的控制器中: override func viewDidLoad() { NSNotificationCenter.defaultCenter().addObserver(self, selector: "pauseGame:", name: "pauseGameScene", object: nil) } func pauseGame(){ self.skView.paused = true self.skView.scene!.paused = true […]

如何在SpriteKit中创build一个绳索?

我想创build一个像这个video中显示的绳索。 开发这样的绳索最好的方法是什么? 我已经试着开始了,我认为最好的办法是制作许多小小的“绳索”部分,并用针脚连接起来(这真的是最好的吗?!?)。 但我不知道如何开始。 也许有人可以给我一些示例代码.. THX 🙂

CUICatalog:无效请求:请求子types,但不指定成语

每当我运行我的精灵套件应用程序,这个错误是不断logging。 这使得debugging变得非常困难,因为日志中充满了这些消息。 他们似乎没有影响如何运行的应用程序,所以简单地抑制错误就足够了。 任何人有任何想法如何解决这个问题?

奇怪的EXC_BAD_ACCESS SpriteKit removeSubsprite崩溃

我是SpriteKit ,刚刚开发了我的第一款游戏。 一切都很好,直到iOS 7.1。 现在,经过几次提升到一个新的水平,呈现一个新的Scene ,它崩溃。 我不认为我是以不正确的方式呈现它: ZSSMyScene *nextLevel = [[ZSSMyScene alloc] initWithSize:self.size level:self.level score:score]; [self.view presentScene:nextLevel]; 我得到了一个EXC_BAD_ACCESS错误,它看起来像是在removeSubsprite上发生的,但我找不到我的代码中的任何地方,我将删除一个subsprite: 不知道还有什么其他的信息,因为这只是一个模糊的错误,似乎开始当我更新到iOS 7.1 SDK。

Spritekit将全部游戏扩展到iPad

所以我正在使用Spritekit在iPhone上开发一个Xcode的游戏。 而且通过使用node.setScale()方法,它在所有的iPhone设备上看起来都是一样的。 现在我想把它制作成Universal,并且可以在iPad上运行。 我如何轻松做到这一点? 有规模的公式吗? 我已经试过的是这样的: if UIDevice.current.userInterfaceIdiom == .pad { sscale = frame.size.height / 768 }else{ sscale = frame.size.height / 320 } 然后为每个节点创buildnode.setScale(sscale)。 这最终不起作用,因为在iPad Mini上它看起来不同于iPad Air …即节点大小和位置… 任何帮助?

SKColor clearColor返回一个黑色,而不是?

在启动过程中,我SKScene按照以下方式设置了SKScene : -(id)initWithSize:(CGSize)size { if (self = [super initWithSize:size]) { self.backgroundColor = [SKColor clearColor]; } return self; } 但不知何故,我得到的是以下这些,是黑的,根本不清楚: 我在这里错过了什么? 我怎样才能使这个场景清晰? 我已经把这个场景看得清清楚楚了,但这仍然是我得到的。 更新:我也尝试设置myView.opaque = NO; 但是这根本没有帮助。