gpt4 book ai didi

ios - SpriteKit 在触摸时移动物理体(空气曲棍球游戏)

转载 作者:行者123 更新时间:2023-11-29 01:46:51 25 4
gpt4 key购买 nike

我正在尝试使用 SpriteKit 制作一款空气曲棍球游戏。我试图让冰球可拖动,但我无法让它们在触摸结束后继续移动。现在我正在绑定(bind)触摸和圆盘,并在触摸移动时设置它的位置。

使用物理系统:

override func update(currentTime: NSTimeInterval) {
for (touch, node) in draggingNodes {
let targetPosition = touch.locationInNode(self)
let distance = hypot(node.position.x - targetPosition.x, node.position.y - targetPosition.y)
var damping = sqrt(distance * 100)
if (damping < 0) {
damping = 0.0
}
node.physicsBody!.linearDamping = damping
node.physicsBody!.angularDamping = damping
let translation = CGPointMake(targetPosition.x - node.position.x, targetPosition.y - node.position.y)
node.physicsBody!.velocity = CGVectorMake(translation.x * 100, translation.y * 100);
}
}

最佳答案

您可能需要进行更多阅读。您要么使用物理系统:

在这种情况下,您将在触摸结束事件上将 impulse 传递给冰球,并根据从上一帧到当前帧(或超过 1 帧的某种类型的平均值)。 https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Physics/Physics.html

[或]

您将在冰球上手动设置速度(不使用物理系统),然后根据该速度手动更新冰球每帧的位置,然后根据角度重新计算冰球与另一个物体接触时的矢量发生率。

关于ios - SpriteKit 在触摸时移动物理体(空气曲棍球游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31814741/

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