好的,所以在SpriteKit中我试图创建一个拥有自己的物理体并将与播放器发生冲突的节点。问题是实际图像不是正方形。它就像一个L tetris块形状。它是一个png,因此图像的背景是空白的,但是当角色与图像碰撞时,它会在实际图像到达之前与图像碰撞,因为空白png仍然是图像的一部分。所以我想知道是否有可能删除图像的“空白”部分,以便角色只会与看到的实际图像发生碰撞。
以下是我对节点的代码:
-(void)makeblock2 {
SKSpriteNode *block2 = [SKSpriteNode spriteNodeWithImageNamed:@"block2.png"];
block2.position = CGPointMake(150,300);
block2.alpha = 1;
block2.size = CGSizeMake(block2.size.width / 2, block2.size.height / 2);
block2.name = @"block2";//how the node is identified later
block2.zPosition = 100;
block2.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(block2.size.width, block2.size.height)];
block2.physicsBody.categoryBitMask = wallCategory;
[myWorld addChild: block2];
}