在更新循环中翻转精灵



我有一个小鸟精灵,我想在屏幕上弹来弹去。因此,当它到达屏幕的边界时,这只鸟会来回移动。这是有效的,但我不能每次都翻转精灵。它在第一次向右移动并击中屏幕的右边缘时工作,当它返回并击中左侧时,精灵不会翻转。以下是我尝试做的

- (void)update:(ccTime)dt
{
    if (bird_x > 1550 || bird_x < 0)
    {
        flip *= -1;
        self.bird.flipX = YES;
    }
    bird_x = bird_x + 10 * flip;
    _bird.position = ccp(bird_x, 1000);
}

我做错了什么?提前谢谢。

这是因为翻转只是一种打开/关闭状态。将self.bird.flipX = YES;行替换为self.bird.flipX = !self.bird.flipX;,然后重试。

最新更新