2016-12-28 1 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

나는 당신이 SKSpriteNode와 함께 GKEntity를 사용하는 방법을 읽을 필요가 있다고 생각한다. 오늘 시간이 있다면, 나는 약간의 표본을 쓰려고 노력할 수 있지만, 지금은 어렵다. 애플은 좋은 샘플을 가지고있다. 또한 Apple의 docs : 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

관련 문제