在 SpriteKit 游戏中计算速度

Posted

技术标签:

【中文标题】在 SpriteKit 游戏中计算速度【英文标题】:Calculating speed in a SpriteKit game 【发布时间】:2013-09-29 22:18:41 【问题描述】:

我正在使用 SpriteKit 和 Kobald Kit(开源添加)来创建一个基于图块的游戏,中间有一个角色。目前,当用户使用基于 CADisplayLink 刻度的操纵杆组件时,我正在计算角色的速度值。问题是角色在更高的帧速率上更快,正确的解决方案是什么?我知道我可以只使用操纵杆本身的 Y 值,但我宁愿失去良好的加速/减速效果......

【问题讨论】:

【参考方案1】:

我假设您正在使用计算出的速度来调整游戏中元素的位置。您可以计算当前tick和最后一个tick之间的delta时间,并根据这个delta缩放速度。

我在我的 SKScene 的更新方法中做了这样的事情:

- (void) update:(NSTimeInterval) currentTime 
    NSTimeInterval delta = currentTime - self.lastTime;
    self.lastTime = currentTime;
    // use the time delta to determine how much of the velocity to add to the affected sprite

【讨论】:

这可行,我只是希望有一些原生 spritekit 解决方案......类似于“总是打勾”的方法:)

以上是关于在 SpriteKit 游戏中计算速度的主要内容,如果未能解决你的问题,请参考以下文章

Sprite Kit 加载速度慢

阻止 Sprite 在 SpriteKit 中相互推动

iOS 如何在 Sprite Kit 游戏中创建音频淡入/淡出效果?

Sprite Kit:如何在运行场景之上添加场景

使用 Swift 在 Sprite Kit 游戏中重置高分

SpriteKit Sprite 无法正确缩放