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 도핑 한 다음 다시로드 메소드 (아직 쓰지 않음)를 호출하면 나타났습니다. 문제는 화면의 다른 영역을 누를 때마다 한 번에 카운트가 시작된다는 것입니다. 어떤 사람들은 내 머리카락을 꺼내는 긴 과정을 통해 나를 도우 려니? 총을 발사 한 횟수는 어떻게 계산합니까?
와우 얼마나 쉬운가! 나는 똑똑한쪽에 조금 그렇게 많이 느끼지 않는다! !! –