如何减少重力对单个 SKSpriteNode 的影响

Posted

技术标签:

【中文标题】如何减少重力对单个 SKSpriteNode 的影响【英文标题】:How to reduce the impact of gravity on a single SKSpriteNode 【发布时间】:2015-11-09 10:11:59 【问题描述】:

我正在构建一个无尽的跑步游戏,其中平台以随机间隔出现,然后在屏幕上从右向左滚动。

我有一个使用垂直向上跳跃的精灵

- (void)makeCharacterJump 

[self.spriteCaveman.physicsBody applyImpulse:CGVectorMake(0.0f, 80.0f)];


问题在于,重力对精灵的影响意味着它下落得很快,无法在平台之间形成间隙。

我想要做的是稍微减慢重力对下落精灵的影响,从而营造出轻微向下漂浮的印象。

有什么想法吗?

【问题讨论】:

你的穴居人是唯一受重力影响的节点吗? 是的,这将是我认为受重力影响的唯一节点 【参考方案1】:

如果角色是唯一受重力影响的节点,那么您可以通过以下方式更改场景的重力:

self.physicsWorld.gravity = CGVectorMake(0, desiredGravity);

如果不是,那么您将不得不使用角色的物理身体属性:摩擦力、线性阻尼或角度阻尼值。

希望对您有所帮助。

【讨论】:

以上是关于如何减少重力对单个 SKSpriteNode 的影响的主要内容,如果未能解决你的问题,请参考以下文章

使用 CoreMotion 移动 SKSpriteNode

阻止 SKSpriteNode 减速

SpriteKit 重力

如何在重力形式中获取列表值?

减少通过智能手机收音机下载内容的应用程序对电池的影响

在 SKScene 中间保留一个物理体?