如何阻止精灵离开屏幕

时间:2014-09-05 18:43:05

标签: objective-c sprite-kit

我正在使用加速计在屏幕上移动精灵,但我不想离开屏幕。

我试试这个

self.physicsWorld.contactDelegate = self;
        self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
        self.physicsBody.categoryBitMask = edgeCategory;


sprite.physicsBody.collisionBitMask = edgeCategory;

但精灵仍然离开了屏幕

我也改变了场景定位点

self.anchorPoint = CGPointMake(0.5, 0.5);

1 个答案:

答案 0 :(得分:-1)

尝试创建4个矩形SpriteNodes并使它们非常薄,构成边框的长行。给他们所有相同的CategoryBitMask等。

这样,您可以使用self.size.width作为长度设置屋顶和地板,并使用大约1或2作为厚度。对面是对面。

这将忽略我认为你所处的问题,其中physicsBody矩形的场景不在屏幕中间。

如果您以前没有这样做,请使用您的方法:

设置sprite.categorybBitMask = spriteCategory; 设置self.collsionBitMask = spriteCategory;

其中一个节点必须是动态的!碰撞工作。