gpt4 book ai didi

ios - iOS 7.1 更新后 SpriteKit 游戏中的对象停止碰撞

转载 作者:行者123 更新时间:2023-11-29 12:48:55 25 4
gpt4 key购买 nike

我的 spriteKit 游戏中的对象在 iOS 7.1 更新后停止碰撞。这包括屏幕的边界,因此角色刚好跑出屏幕。我使用位掩码检测碰撞并在 didBeginContact 委托(delegate)方法中处理碰撞。我将添加有关如何添加 SKNode 的代码。提前致谢。

//main character 
self.girl = [SKSpriteNode spriteNodeWithImageNamed:@"pixelgirl"];
self.girl.position = CGPointMake(self.size.width / 2, self.size.height * 0.2);
[self addChild:self.girl];
self.girl.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.girl.size.height / 4];
self.girl.physicsBody.dynamic = YES;
self.girl.physicsBody.affectedByGravity = NO;
self.girl.physicsBody.mass = 0.02;
self.girl.physicsBody.allowsRotation = NO;
self.girl.physicsBody.categoryBitMask = girlCategory;
self.girl.physicsBody.contactTestBitMask = tallTreeCategory | uglyTreeCategory | shortTreeCategory;

//contact object
SKSpriteNode *pixelShort = [SKSpriteNode spriteNodeWithImageNamed:@"pixelshort"];
pixelShort.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:pixelShort.size.width / 2]; //2
pixelShort.physicsBody.dynamic = NO;
pixelShort.physicsBody.categoryBitMask = uglyTreeCategory;

- (void)didBeginContact:(SKPhysicsContact *)contact
{

__block BOOL isRotating;

[self performSelector:@selector(moveDog) withObject:Nil afterDelay:.3];

isRotating = NO;

if (!isRotating) {
SKAction* action0 = [SKAction scaleXTo:1.0 duration:0.05];
SKAction* action1 = [SKAction scaleXTo:0.1 duration:0.05];
SKAction* action2 = [SKAction scaleXTo:-0.1 duration:0.05];
SKAction* action3 = [SKAction scaleXTo:-1.0 duration:0.05];

SKAction* action = [SKAction sequence:@[action0,action1,action2, action3]];

[self.girl runAction:action completion:^{
isRotating = YES;
}];

}

}

最佳答案

您的问题是 scaleXTo:-1.0。我使用完全相同的命令来镜像我的一个 Sprite ,一旦我这样做,这个小家伙就停止响应所有联系人。删除它,一切都会好起来的。

关于ios - iOS 7.1 更新后 SpriteKit 游戏中的对象停止碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22900599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com