2016-12-28 8 views
2

私は、プレイヤーが割り当てられた時間内にランダムに出現するボールをタップするゲームを作成しています。タップを特定の数に制限したいのです。誰かがあるアイデアやスニペットコードを持っていれば、私は感謝します。ここでSwift 3/SpriteKitでボールのタップを制限する方法は?

は抜粋です:

var tapCount = 0 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?){ 

    tapCount = tapCount + 1 
    print(tapCount) 

    if tapCount >= 10 { 

     print("we made it") 


    } 
} 

答えて

0

すべてのボールは、いくつかの関連するエンティティ(GKEntity)を持っている必要があります。エンティティにはtapCountというプロパティがあり、タップごとにこの値を大きくします。 tapCountが限界に達すると、タップの受け入れを停止することができます。

+0

もし私が正しいとしたら、更新された質問をチェックアウトできますか? –

+0

GKEntityをSKSpriteNodeと組み合わせて使う方法を読んでおく必要があると思います。今日は時間があれば少しサンプルを書くことができますが、今は難しいです。 Appleには良いサンプルがいくつかあります。また、Appleのドキュメントを読むこともできます:https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/EntityComponent.html#//apple_ref/doc/uid/TP40015172-CH6-SW1 –

2

タッチが検出されるたびに更新されるカウンタを作成できます。例:

var touchesThisRound : Int = 0; 

override func touchesBegan(touches: NSSet!, withEvent event: UIEvent!) 
{ 
    touchesThisRound+=1; 
} 

次に、毎回リセットします。

+0

私が変更した場合touchesThisRound + = 10これはユーザーが10回だけタップできることを意味しますか? –

+0

いいえ、 'let maxTouches:Int = 10;'のような変数が必要です。次に、touchesThisRound <= maxTouchesのときにのみ何かを行うtouchesBeganのif文が必要な場合があります。それから、touchesBeganはもっと触れると何もしません。 – hgil

+0

@Mikeは、「私たちが作った」とは、ユーザーがすべてのタッチを使用したことを意味します。 – hgil

関連する問題