2013-01-22 2 views
0

저는 초조함을 느낍니다. 왜냐하면 나는 cocos2d로 무엇을하고 있는지 모르기 때문입니다. 나는 cocos2d에 대한 Ray Wenderlich 자습서를 따르고 있으며, 모두 함께 사용하려고합니다. 화면을 탭하면 탭 한 방향으로 총알이 발사됩니다. 나는 얼마나 많은 총알이 발사 되었습니까?

- (void)shootNow { 
    // 1 
    CGFloat angle = ccpToAngle(_shootVector); 
    _gun.rotation = (-1 * CC_RADIANS_TO_DEGREES(angle)) + 90; 

    // 2 
    CGSize winSize = [[CCDirector sharedDirector] winSize]; 
    float mapMax = MAX(winSize.width, winSize.height); 
    CGPoint actualVector = ccpMult(_shootVector, mapMax); 

    // 3 
    float POINTS_PER_SECOND = 300; 
    float duration = mapMax/POINTS_PER_SECOND; 

    // 5 
    for(id item in self.children) { 
    NSString *bulletName = [NSString stringWithFormat:@"bullet.png"]; 
    CCSprite * bullet = [CCSprite spriteWithSpriteFrameName:bulletName]; 
    //bullet.tag = _type; 
    bullet.position = ccpAdd(self.position, ccpMult(_shootVector, _gun.contentSize.height)); 
    CCMoveBy * move = [CCMoveBy actionWithDuration:duration position:actualVector]; 
    CCCallBlockN * call = [CCCallBlockN actionWithBlock:^(CCNode *node) { 
     [node removeFromParentAndCleanup:YES]; 
    }]; 
    [bullet runAction:[CCSequence actions:move, call, nil]]; 
    [self.batchNode addChild:bullet]; 

     //[self addChild:bullet]; 
     [_shotsFired addObject:bullet]; 
    } 
} 

그래서 나는 그것이 시간 후 다시로드 메소드를 호출의 5 단계 X 양을 통과 루프에 대한 간단한 것 생각 내 책임자 클래스에서이 메소드를 호출

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint touchLocation = [self convertTouchToNodeSpace:touch]; 
    [self.officer shootToward:touchLocation]; 
    [self.officer shootNow]; 
} 

- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    CGPoint touchLocation = [self convertTouchToNodeSpace:touch]; 
    [self.officer shootToward:touchLocation]; 
    [self.officer shootNow]; 
} 

을 사용하고 있습니다. 글쎄 그건 작동하지 않았다. 그래서 화면의 터치를 계산하려했는데, x 도핑 한 다음 다시로드 메소드 (아직 쓰지 않음)를 호출하면 나타났습니다. 문제는 화면의 다른 영역을 누를 때마다 한 번에 카운트가 시작된다는 것입니다. 어떤 사람들은 내 머리카락을 꺼내는 긴 과정을 통해 나를 도우 려니? 총을 발사 한 횟수는 어떻게 계산합니까?

답변

2

그냥보기 컨트롤러에 속성을 만들 수 없습니까? 그러면 지금 촬영 메서드가 호출 될 때마다 속성에 1을 더하고 다시로드 메서드를 호출 할 때 0으로 다시 설정해야합니까?

+0

와우 얼마나 쉬운가! 나는 똑똑한쪽에 조금 그렇게 많이 느끼지 않는다! !! –

관련 문제