안녕하세요 충돌 감지를 사용하는 데 문제가 있습니다. 무슨 일이 일어나고 있는지는 발사체 (탄환)가 외계인에게 충돌하여 입자 스파크가 발생했을 때입니다. 문제는 때로는이 기능이 발사체와 몬스터를 섞어서 때때로 총알이 파괴되는 곳에서 불꽃을 생성한다고 생각합니다.SKSpriteNode에서 충돌 감지를 사용하는 데 문제가 있습니다.
Q. 어떤 스프라이트 히트를 결정합니까?
누구든지 조언을 해줄 수 있습니까?
- (void)projectile:(SKSpriteNode *)projectile didCollideWithMonster:(SKSpriteNode *)monster
{
[projectile removeFromParent];
canfire = true;
NSString *path = [[NSBundle mainBundle]pathForResource:@"spark" ofType:@"sks"];
SKEmitterNode *spark = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
spark.position = monster.position;
SKAction *pause = [SKAction waitForDuration:1.0];
SKAction *remove = [SKAction removeFromParent];
[spark runAction:[SKAction sequence:@[pause,remove]]];
spark.position = monster.position;
[monster addChild:spark];
[monster removeFromParent];
}
예는 확실히 발사체와 몬스터가 혼합 점점 :
2014-07-20 19:56:35.279 Space Warz[9420:60b] First Body name = bullet
2014-07-20 19:56:35.280 Space Warz[9420:60b] Hit
2014-07-20 19:56:35.281 Space Warz[9420:60b] Monster Name: crystalship
2014-07-20 19:56:40.878 Space Warz[9420:60b] Contact
2014-07-20 19:56:40.879 Space Warz[9420:60b] First Body name = crystalship
2014-07-20 19:56:40.880 Space Warz[9420:60b] Hit
2014-07-20 19:56:40.881 Space Warz[9420:60b] Monster Name: bullet
2014-07-20 19:56:43.845 Space Warz[9420:60b] Contact
2014-07-20 19:56:43.846 Space Warz[9420:60b] First Body name = bullet
2014-07-20 19:56:43.847 Space Warz[9420:60b] Hit
2014-07-20 19:56:43.848 Space Warz[9420:60b] Monster Name: crystalship
2014-07-20 19:56:43.855 Space Warz[9420:60b] Contact
2014-07-20 19:56:43.856 Space Warz[9420:60b] First Body name = bullet
2014-07-20 19:56:43.857 Space Warz[9420:60b] Hit
2014-07-20 19:56:43.858 Space Warz[9420:60b] Monster Name: crystalship
# LearnCocos2D 무엇을 편집하셨습니까? – Mike
발사체 및 몬스터 매개 변수와 같은 소리가 항상 '예상되는'것은 아닙니다. 그 메소드는 어디서 호출 되나요? 그 코드를 게시하십시오. 당신이 가지고있는 방법은 매개 변수와 일치하는 올바른 객체를 전달한다는 가정을 결정하는 것이 아닙니다. – prototypical
didCollideWithMonster 메서드는 어떻게 호출합니까? – ZeMoon