2012-12-30 2 views
0

나는 Cocos2D로 작업하기 시작했으며 지금까지 많이 배웠다. 하지만 ccDrawLine을 시뮬레이트하는 방법을 찾을 수 없기 때문에 기타 문자열과 같은 동작을합니다. 즉, ccDrawLine을 만질 때 사운드가 재생되고 사용자가 터치하는 곳의 ccDrawLine을 움직입니다.cocos2d 기타 용 기타 문자열

답변

0

나는적인 Cocos2D와 경험을했습니다,하지만 프로세스는 기타 줄이 너무과 같이 할 수있다 시뮬레이션 :

  • 이 선을 그립니다; (작은 문자열이 안정적으로 터치를 등록 할만큼 두꺼운하지 않을 수로)
  • 문자열 주위에 유효한 "터치 영역을"추가; 당신은 터치 영역의 범위 내에서 터치를 감지하면
  • 은 스트 럼을 시뮬레이션하기 위해 라인을 애니메이션과 사운드를 재생 (과 진동의 둔화를 시뮬레이션하기 위해, 그것을 페이드 아웃). 고려해야 할

또 다른 것은 소리를 중복의 가능성이있을 수 있습니다. 사용자가 동일한 문자열을 빠르게 터치하면 어떻게됩니까? 새로운 사운드가 시작되기 전에 이전 사운드가 멈춰야합니다. 또는 더 자연스럽게 사용자가 여전히 문자열에 손가락을 대고있는 동안 사운드가 재생되지 않아야하며 사용자가 문자열을 "뽑아"(즉, 터치를 종료 한) 소리 만 생성해야합니다. 적인 Cocos2D 자체 터치 이벤트 핸들러 (나는 그것을 것이라고 상상)이 있지만, 아마도이 SO 게시물에 도움이 될 경우

는 잘 모르겠어요 : how can i detect the touch event of an UIImageView

편집 : 그것은적인 Cocos2D 자체 터치 이벤트를 가지고, 밝혀 매니저. 참조 : I은 잉크 스케이프로 무료로 간단한 벡터 아트 도구를 사용하여 이것에 대해 갈 것 How can I detect touch in cocos2d?

0

. 다양한 두께/질감의 사실적인 모양의 스트링을 만들 수 있습니다. 문자열을 앱에 다른 스프라이트로 가져옵니다. Cocos2d는 시나리오에 완벽하게 맞는 'isTouchOnNode'와 같은 것을 쉽게 탐지 할 수있는 많은 옵션을 가지고 있습니다. 특히 http://kobold2d.com은 손쉬운 터치 감지와 노드 선택에 이상적입니다.

나는 순간 엑스 코드에 액세스 할 수없는, 그래서 이것은 그대로 코드하지 않을 수 있습니다 :

/* if you use Kobold2d */ 

CCSprite* Gstring = [CCSprite spriteWithFile:@"Gstring.png"]; 
KKInput* input = [KKInput sharedInput]; 
if ([input isAnyTouchOnNode:Gstring touchPhase:KKTouchPhaseAny]) 
{ 
// play a sound. 
// this code will become extremely complicated 
// if you want a realistic sound 
} 

당신이 만드는 계획하는 경우에 사용하는 것이 가장 좋은 엔진을하지 않을 수 있습니다적인 Cocos2D 점을 명심 사운드/음악 무거운 앱. CocosDenshion의 매우 기본적인 'SimpleAudioEngine'은 기타가 만들 수있는 많은 중첩 사운드를 처리하도록 설계되지 않았습니다.