gpt4 book ai didi

collections - 如何检测 Sprite 套件中的碰撞?

转载 作者:行者123 更新时间:2023-12-04 03:15:03 24 4
gpt4 key购买 nike

我正在使用 Sprite Kit 制作游戏,但我一直在努力解决 SpriteNode 之间的碰撞检测问题,我已经设置了一个名为 sprite 的 sprite 节点和一个名为 platform 的 sprite 节点。我希望 Sprite 在与平台碰撞时停止掉落。这是我的:

        SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"bal.png"];
sprite.position = CGPointMake(self.frame.size.width/4 + arc4random() % ((int)self.frame.size.width/2), (self.frame.size.height/2 + arc4random() % ((int)self.frame.size.height/2)));
sprite.color = [self randomColor];
sprite.colorBlendFactor = 1.0;
sprite.xScale = 0.2;
sprite.yScale = 0.2;
[self addChild:sprite];
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
self.physicsWorld.gravity = CGVectorMake(0.0f, -4.0f);

SKSpriteNode *platform = [SKSpriteNode spriteNodeWithImageNamed:@"YellowPlatform.png"];
platform.position = CGPointMake(CGRectGetMidX(self.frame), -200+CGRectGetMidY(self.frame));
platform.size = CGSizeMake(180, 10);
[self addChild:platform];

提前致谢!

最佳答案

来自关于 SKNodephysicsBody 属性的 Apple 文档:

The default value is nil, which indicates that the node does not participate in the physics simulation at all.

如果你想让你的球在平台上滚动,你必须设置平台的 physicsBody 属性。

此外,您必须在平台上禁用动态 属性:

A Boolean value that indicates whether the physics body is moved by the physics simulation.

否则,如果另一个受物理影响的物体掉落在平台上,您的平台就会掉落/移动。

链接:https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKNode_Ref/Reference/Reference.html#//apple_ref/occ/instp/SKNode/physicsBody https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKPhysicsBody_Ref/Reference/Reference.html

关于collections - 如何检测 Sprite 套件中的碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337067/

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