iOS - SpriteKit探索

一关面、粒子效果:SKEmitterNode

  1. 雪花效果 <轉(zhuǎn)換出來的gif有點模糊嗯>


    mm.gif
  2. 煙花效果<轉(zhuǎn)換出來的gif有點模糊嗯>


    qqp.gif
  3. 火焰效果蜕青、冒煙效果瘟栖、下雨效果等等

  4. 自定義效果


    圖片.png

創(chuàng)建粒子效果步驟<以雪花舉例>

  1. 創(chuàng)建.sks文件 : File - file - SpriteKit Particle file , 選擇對應粒子效果


    圖片.png
  2. 更改Main.storyboard 文件中view對應的父視圖層級結構


    圖片.png
  3. 創(chuàng)建Scene類 : File - file - SpriteKit Scene ,

     @property(nonatomic,strong)SKEmitterNode* emitter;
    
     - (void)didMoveToView:(SKView *)view {
    
         NSString*burstPath =[[NSBundle mainBundle] pathForResource:@"snow"ofType:@"sks"];
    
         self.emitter = [NSKeyedUnarchiver unarchiveObjectWithFile:burstPath];
    
         _emitter.position=CGPointMake(self.size.width/2,self.size.height/2-100);
    
         [self addChild:_emitter];
    
     }
    

5.如果想滑動、點擊等也實現(xiàn)對應效果的話蜡豹,實現(xiàn)下列代碼

 - (void)touchDownAtPoint:(CGPoint)pos {
    SKEmitterNode *n = [_emitter copy];
    n.position = pos;
//    n.strokeColor = [SKColor greenColor];
    [self addChild:n];
}

//- (void)touchMovedToPoint:(CGPoint)pos {
//    SKEmitterNode *n = [_emitter copy];
//    n.position = pos;
////    n.strokeColor = [SKColor blueColor];
//    [self addChild:n];
//}

- (void)touchUpAtPoint:(CGPoint)pos {
    SKEmitterNode *n = [_emitter copy];
    n.position = pos;
//    n.strokeColor = [SKColor blueColor];
    [self addChild:n];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    // Run 'Pulse' action from 'Actions.sks'

    for (UITouch *t in touches) {[self touchDownAtPoint:[t     locationInNode:self]];}
}

//- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
//    for (UITouch *t in touches) {[self touchMovedToPoint:[t locationInNode:self]];}
//}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UITouch *t in touches) {[self touchUpAtPoint:[t locationInNode:self]];}
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
    for (UITouch *t in touches) {[self touchUpAtPoint:[t locationInNode:self]];}
}
  1. 加載效果

     GameScene *scene = (GameScene *)[SKScene nodeWithFileNamed:@"GameScene"];
     //    scene.size = CGSizeMake(KScreenWidth, KScreenHeight);
         // Set the scale mode to scale to fit the window
     scene.scaleMode = SKSceneScaleModeAspectFill;
     SKView *skView = (SKView *)self.view;
     skView.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight);
       // Present the scene
     [skView presentScene:scene];
     skView.showsFPS = YES;
     skView.showsNodeCount = YES;
    

二麸粮、拖曳效果:SKShapeNode

qwr.gif
  1. 更改Main.storyboard 文件中view對應的父視圖層級結構

  2. 創(chuàng)建Scene類 : File - file - SpriteKit Scene

      @property(nonatomic,strong) SKShapeNode * spinnyNode;
    
     - (void)didMoveToView:(SKView *)view{
    
         CGFloat w = (self.size.width + self.size.height) * 0.05;
    
         // Create shape node to use during mouse interaction
         _spinnyNode = [SKShapeNode         shapeNodeWithRectOfSize:CGSizeMake(w, w) cornerRadius:w * 0.3];
         _spinnyNode.lineWidth = 2.5;
    
         [_spinnyNode runAction:[SKAction repeatActionForever:[SKAction rotateByAngle:M_PI duration:1]]];
         [_spinnyNode runAction:[SKAction sequence:@[
             [SKAction waitForDuration:0.5],
             [SKAction fadeOutWithDuration:0.5],
             [SKAction removeFromParent],
         ]]];
     }
    
  3. 拖動等代碼實現(xiàn)

     - (void)touchDownAtPoint:(CGPoint)pos {
         SKShapeNode *n = [_spinnyNode copy];
         n.position = pos;
         n.strokeColor = [SKColor greenColor];
         [self addChild:n];
     }
    
     - (void)touchMovedToPoint:(CGPoint)pos {
         SKShapeNode *n = [_spinnyNode copy];
         n.position = pos;
         n.strokeColor = [SKColor blueColor];
         [self addChild:n];
     }
    
     - (void)touchUpAtPoint:(CGPoint)pos {
         SKShapeNode *n = [_spinnyNode copy];
         n.position = pos;
         n.strokeColor = [SKColor redColor];
         [self addChild:n];
     }
    
     - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
         // Run 'Pulse' action from 'Actions.sks'
    
         for (UITouch *t in touches) {[self touchDownAtPoint:[t locationInNode:self]];}
     }
    
     - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
         for (UITouch *t in touches) {[self touchMovedToPoint:[t locationInNode:self]];}
     }
    
     - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
         for (UITouch *t in touches) {[self touchUpAtPoint:[t locationInNode:self]];}
     }
    
     - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
         for (UITouch *t in touches) {[self touchUpAtPoint:[t locationInNode:self]];}
     }
    
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市镜廉,隨后出現(xiàn)的幾起案子豹休,更是在濱河造成了極大的恐慌,老刑警劉巖桨吊,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凤巨,居然都是意外死亡视乐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門敢茁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佑淀,“玉大人,你說我怎么就攤上這事彰檬∩烊校” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵逢倍,是天一觀的道長捧颅。 經(jīng)常有香客問我,道長较雕,這世上最難降的妖魔是什么碉哑? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮亮蒋,結果婚禮上扣典,老公的妹妹穿的比我還像新娘。我一直安慰自己慎玖,他們只是感情好贮尖,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趁怔,像睡著了一般湿硝。 火紅的嫁衣襯著肌膚如雪薪前。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天图柏,我揣著相機與錄音序六,去河邊找鬼。 笑死蚤吹,一個胖子當著我的面吹牛例诀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播裁着,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼繁涂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了二驰?” 一聲冷哼從身側響起扔罪,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桶雀,沒想到半個月后矿酵,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡矗积,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年全肮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棘捣。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡辜腺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乍恐,到底是詐尸還是另有隱情评疗,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布茵烈,位于F島的核電站百匆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瞧毙。R本人自食惡果不足惜胧华,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宙彪。 院中可真熱鬧矩动,春花似錦、人聲如沸释漆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至示姿,卻和暖如春甜橱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栈戳。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工岂傲, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人子檀。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓镊掖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親褂痰。 傳聞我的和親對象是個殘疾皇子亩进,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友缩歪。感恩相遇归薛!感恩不離不棄。 中午開了第一次的黨會匪蝙,身份的轉(zhuǎn)變要...
    迷月閃星情閱讀 10,561評論 0 11
  • 彩排完主籍,天已黑
    劉凱書法閱讀 4,202評論 1 3
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒逛球。表情可以傳達很多信息崇猫。高興了當然就笑了,難過就哭了需忿。兩者是相互影響密不可...
    Persistenc_6aea閱讀 124,559評論 2 7