0
xscale을 사용하여 내 SKSpriteNodes 중 하나를 반전하려고 시도하면 충돌 감지가 중지됩니다. 앵커 포인트 이동, 모든 노드 주위의 컨테이너 노드 배치 및 물리 본문 반복과 같은 여러 가지 방법으로이를 해결했습니다. 이 세 번째 옵션은 내가 성공한 유일한 옵션이지만 대부분의 상황에서는 작동하지 않습니다. 모든 삽화를 뒤집고 모든 애니메이션지도의 두 배를 만드는이 짧은 방법을 고칠 수있는 방법이 있습니까?Xscale이 충돌 감지를 방지합니다.
self.player.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(30, 60)];
self.player.position= CGPointMake(400, 200);
self.player.zPosition = 25;
self.player.physicsBody.dynamic = YES;
self.player.physicsBody.usesPreciseCollisionDetection = YES;
self.player.physicsBody.friction = 0;
self.player.name = @"player";
self.player.physicsBody.categoryBitMask = player;
self.player.physicsBody.contactTestBitMask = ground;
self.player.physicsBody.collisionBitMask = monsterCategory;
self.player.physicsBody.allowsRotation = false;
[self addChild:self.player];
for (UITouch *touch in touches){
CGPoint touchLocation = [touch locationInNode:self];
if (touchLocation.x>self.player.position.x &&touchLocation.y>=135) {
forward2 = YES;
multiplierForDirection2 = 1;
}else if (touchLocation.x<self.player.position.x && touchLocation.y>=135){
reverse2 = YES;
multiplierForDirection2 = -1;
}
if (mode2 ==1) {
[self walkingBear];
}else if (mode2 ==2){
jump2 = true;
[self fly];
}else if (mode2 == 3){
[self weapon];
}
}
self.player.xScale = fabs(self.player.xScale)*multiplierForDirection2;
코드 게시 ... – LearnCocos2D