gpt4 book ai didi

ios - SpriteKit 物理每次都会给出不同的结果

转载 作者:行者123 更新时间:2023-12-01 20:05:32 27 4
gpt4 key购买 nike

在我的游戏中,我正在创建一些受重力影响的球。当游戏开始时,他们会从屏幕外掉下来,并在底部找到自己的位置。没有其他力施加在他们身上。

问题是我正在用精确的坐标、精确的物理属性创建这些球,但结果不一样。它相似但不一样。但我认为它应该完全相同,因为每次值都是相同的。

你可以理解我在下面这3张图片中所说的。 enter image description here enter image description here enter image description here

你知道为什么会这样吗?我该如何解决?

这就是我创建 Sprite 节点的方式:

BallSpriteNode *sprite = [BallSpriteNode spriteNodeWithTexture:ballTexture];
sprite.xScale = scale;
sprite.yScale = scale;
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
sprite.physicsBody.density = 1.0f;
sprite.physicsBody.restitution = 0;
sprite.physicsBody.dynamic = YES;
sprite.physicsBody.categoryBitMask = ballHitCategory;
sprite.physicsBody.contactTestBitMask = ballHitCategory;
sprite.physicsBody.collisionBitMask = ballHitCategory;

CGPoint startPosition = CGPointMake(xPosition, yPosition);
sprite.position = startPosition;

[bounceScene addChild:sprite];

最佳答案

使物理引擎的随机性降低涉及许多因素。

FPS 极大地影响了随机性。在 SKSpriteKit Physics 中,您在 SKScene 中有一个 Update 方法,该方法每帧调用一次,并携带与前一帧的时间差。通常为了减少随机性,您必须以某种方式覆盖该方法。

或者使用其他可定制的物理引擎(子弹物理)。只需调整 StepSimulation 函数调用,就很容易得到相同的结果。

关于ios - SpriteKit 物理每次都会给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995939/

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