我正在使用加速计在屏幕上移动精灵,但我不想离开屏幕。
我试试这个
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);
答案 0 :(得分:-1)
尝试创建4个矩形SpriteNodes并使它们非常薄,构成边框的长行。给他们所有相同的CategoryBitMask等。
这样,您可以使用self.size.width作为长度设置屋顶和地板,并使用大约1或2作为厚度。对面是对面。
这将忽略我认为你所处的问题,其中physicsBody矩形的场景不在屏幕中间。
如果您以前没有这样做,请使用您的方法:
设置sprite.categorybBitMask = spriteCategory; 设置self.collsionBitMask = spriteCategory;
其中一个节点必须是动态的!碰撞工作。