2014-04-29 60 views
0

我正在嘗試做一個小型的射箭遊戲,目前我有一個基本的touchesBegan方法,它使用SKActions來爲射手製作動畫並拍攝箭頭。SpriteKit:如何實現touchesBegan和touchesEnded將分割動作分爲兩部分?

我很難得到它,所以我保持觸摸畫弓,然後當我釋放時,動畫的其餘部分播放和箭頭射擊。

我使用兩個單獨的NSMutableArray地圖集跨越touchesBegantouchesEnded方法流傳着userInteractionEnabled標誌嘗試過,但,這是一個有點不走......

最後我想保持的時間要口述值爲applyImpulse:CGVectorMake

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
SKNode *archerNode = [self childNodeWithName:@"archerNode"]; 

if (archerNode != nil) 
{ 
    SKAction *draw = [SKAction animateWithTextures:self.archerDraw timePerFrame:0.075]; 
    [archerNode runAction:draw]; 

    SKAction *shootArrow = [SKAction runBlock:^{ 

     SKNode *arrowNode = [self createArrowNode]; 

     [self addChild:arrowNode]; 
     [arrowNode.physicsBody applyImpulse:CGVectorMake(20.0, 0)]; 
    }]; 

    SKAction *sequence = [SKAction sequence:@[draw, shootArrow]]; 

    [archerNode runAction:sequence]; 
    } 
    } 
+0

請從觸控代表處發佈與此問題相關的完整代碼。 – ZeMoon

回答

0

啓動在touchesBegan:部的充電動畫&在touchesEnded:(+ touchesCancelled:)函數移動箭頭釋放碼。在實例變量中保持觸摸開始的時間將幫助您計算脈衝向量。

+0

感謝您的回答,現在看起來它會播放完整的動畫,無論持續觸摸多長時間,但如果我仍然感動,我可以緩慢釋放箭頭。我猜我必須實現一個計時器或其他東西。我能夠通過點擊來像機槍一樣發射箭頭,這有點殺死幻覺...... – Astirian

+0

這就是我最後一句話的意思。 – Alexander

+0

好的,所以我可以使用相同的touchesBegan實例變量,我將用它來計算脈衝向量來控制動畫是否完全繪製? – Astirian