2016-06-21 2 views
-3

이 기능은 작동하지만 내 기능이 부적절하다고 생각했습니다. 그것은 컴파일하지만 아무것도하지 않으며 나는 그것이 이렇게 작동 할 수 있는지조차 모르겠다. 나는 아주 신속하고 모든 도움을 주셔서 감사합니다.Swift Xcode 화면의 각 탭을 사용하여 도형의 색상을 전환하는 방법

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    /* Called when a touch begins */ 

    for touch in touches { 
     _ = touch.locationInNode(self) 

     colorSwitch() 
       } 
} 

func colorSwitch(){ 

    if (ShapeY.color == UIColor.whiteColor()) { 
     ShapeY.color = UIColor.blackColor() 
    } 
    else if (ShapeY.color == UIColor.blackColor()) { 
     ShapeY.color = UIColor.whiteColor() 
    } 
} 
+0

그냥 원. 화면 중간에 원이 생기고 탭을 할 때 검정색에서 흰색을 검정색으로 변경하고 싶습니다. 나는 더 분명해야했다. – yellowlan

+0

죄송합니다, 지금까지이 의견을 통보하지 못했습니다. 그것은 스프라이트 노드였습니다. colorourTlendFactor를 colourTT라는 변수 CRLloat와 같게 설정하는 또 다른 아이디어가있었습니다. colourTT는 1로 초기화되었습니다. 그런 다음 흑백으로 전환 할 터치가있을 때마다 -1로 곱해 지도록 설정하려고합니다. '재정 touchesBegan FUNC (터치 : 설정, withEvent 이벤트는?의 UIEvent)는 { 은/* 호출 터치가 시작되면 */ colourTT * = -1 }'이하지만 전혀 나를 위해 작동하지 않습니다 . – yellowlan

+0

나는 여분의 변수 인 colourTT를 없애고 단지 이것을했지만, 한 번 터치 한 후에 멈추는 것처럼 보인다. 어떻게 다른 감동을 볼 수 있습니까? '재정 touchesBegan FUNC (터치 : 설정, withEvent 이벤트는?의 UIEvent)는 { 은/* 호출 터치가 시작 */ Mainball.colorBlendFactor * = -1.0 때}' – yellowlan

답변

-1

색상은 == 연산자를 사용하여 비교할 수 없으므로 두 if 문은 모두 false로 평가됩니다. 에 ==을 변경해보십시오 :

ShapeY.color.isEqual(UIColor.whiteColor()) 

당신은 선택을 푸는 !를 사용 할 수 있습니다 :

ShapeY.color!.isEqual(UIColor.whiteColor()) 
+0

나는에 넣어 때이 오류가 발생합니다! 그리고 지금은 == isEqual로 바뀌었지만, 적어도 나는 함께 할 무언가가 있습니다. 만약 if 문이 작동한다면 알아낼 수 있을까요? 내 기능 colourSwitch는 탭이있을 때마다 호출됩니까 아니면 한 번 호출됩니까? – yellowlan

관련 문제