self.player.xScale = fabs(self.player.xScale)*multiplierForDirection2;
当我使用向左转动玩家时,他无法检测到来自敌人2的碰撞,但是可以从敌人1中检测到它,即使BitMasks对于两者都是相同的。 我遇到了类似的问题,最终不得不为敌人左移和敌人右移创造两种不同的功能 xScale究竟在做什么来防止碰撞?
答案 0 :(得分:0)
我假设这是spriteKit ....如果您创建一个SKNode作为self.player的父对象,您可以将对撞机附加到SKNode并在播放器上使用xScale = -1。像这样:
SKNode *parent = [SKNode new];
parent.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.player.frame.size];
[parent addChild:self.player];
self.player.xScale = -1;
类似于拥有一个空的游戏对象来将所有东西放在一起。不幸的是,您的某些代码可能必须更改以适应新的父节点。