2010-12-27 8 views
0

빠른 도움말이 필요합니다. 내 첫 게임 인 Cocos 2D 및 Box 2D를 제작 중이며 충돌하는 동안 텍스트를 표시하는 방법에 대한 도움이 필요합니다. 기준은 매우 간단합니다. 돌과 새총을 사용하면 위에 떨어지는 물체를 칠 필요가 있습니다. 각 객체에는 고유 한 점과 기능이 있습니다. 돌 중 하나가 3 개 이상의 객체를 파괴하는 경우 구현해야하는 객체 중 하나 인 경우 "combo"라는 단어가 화면에 나타나야하고 점차적으로 사라집니다. 열심히 귀하의 회신과 제안을 기다리고있을 것입니다. 이은으로 덮여있다 - 당신은 그래픽이나 레이블을 사용할 것,충돌하는 동안 텍스트를 표시하는 방법?

// use this to keep track of how many stones are destroyed, 
// every time a stone is destroyed, increment it by 1 
int count = 0; 

는 "콤보"를 표시하려면 :

감사합니다,

KARTHIK는

+0

유는 화가 조류 게임 같은 새총을 구현했습니다. 그렇다면 plz 공유 코드를 의미합니다. – Srinivas

답변

0

은 매우 간단하고 단순한 것 같은데 cocos2d 예제는 여기에 표시하는 방법을 설명하지 않겠습니다.

"tick"콜백에서 "count"값이 "3"("magic"숫자)보다 크거나 같으면 여기에서 " 콤보 "노드.

CCFadeIn *fadeIn = [CCFadeIn actionWithDuration: 0.25f]; 
CCFadeOut *fadeOut = [CCFadeOut actionWithDuration: 0.0125f]; 
CCDelayTime *delay = [CCDelayTime actionWithDuration: 0.5f]; 
[node runAction: [CCSequence actions: fadeIn, delay, fadeOut, nil]; 

작업이 세트는, 0.5 초 대기, 두 번째 분기 이상에서 노드를 페이드하는 두 번째의 제 8 위를 페이드 아웃. 필요에 따라 코드를 조정할 수 있습니다. 카운터가> 3 일 때 수행 할 수있는 몇 가지 추가 작업은 "콤보"텍스트를 마지막 항목의 위치에 위치를 변경하거나 위치를 무작위로 지정하여 항상 같은 위치에 있지 않도록합니다.

예제 코드의 "노드"객체는 장면에 추가 된 CCSprite 또는 CCLabel이지만 단순히 가시성을 토글합니다 (이 항목은 장면에 그대로 두는 것이 "자주"더 많이 나타납니다) 새 항목을 만들어 매번 파기하는 것이 아니라 드물기 때문에 새로운 항목을 만든 다음 새 항목을 만들어서 파기하십시오.

+0

다윗에게 감사드립니다. 나는 아이디어가 있었지만 당신은 그것을 현실로 만드는 방법을 보여주었습니다. 그러나 나는 하나 더 질문이있다. 내가 떨어지는 다른 물체를 가지고 있기 때문에 일어나는 두 번째 충돌을 결정할 수 있습니다. 첫 번째 충돌과 동일한 스프라이트가 아닙니다. 예 : a, b, c는 위에서 떨어지고 있습니다. 3 개 이상의 시체가 파괴되고 콤보가 나타나면 b 또는 c가 해당 루프에서 충돌하지 않도록하는 방법입니다. 그냥 정보 : 나는 2 개의 모든 객체에 대해 diff 태그를주었습니다. – Reddevil

+0

a, b 및 c 모두에 태그가있는 경우 - 태그를 비교하면됩니다. 각 "이미지"(시각적 인 모양)에 대해 별도의 태그를 사용하고 태그가 일치하는지 또는 일치하지 않는지에 따라 논리를 수행하십시오. –

+0

안녕 얘들 아. ContactListener를 사용하는 Box2D에서 충돌시 텍스트를 어떻게 표시 할 수 있습니까? – Nitish

1

예를 들어 cgintersectrect에서 충돌을 감지 할 수 있습니다 이러한 텍스트를 작성해야합니다.

,210

예제 코드 : -

if (CGRectIntersectsRect(projectileRect, targetRect)) { 
       [targetsToDelete addObject:target]; 
       CCMenuItem *pause_menu = [CCMenuItemImage itemFromNormalImage:@"pause.png" selectedImage:@"pause.png" target:self selector:@selector(pauseGame:)]; 
       CCMenu *menu = [CCMenu menuWithItems: pause_menu, nil]; 
       menu.position = ccp(460, 15); 
       [self addChild:menu ]; 
      } 
관련 문제