【发布时间】:2015-03-10 19:33:44
【问题描述】:
我试图让我的 SKSpriteNodes 永远以恒定的速度移动,即使在发生碰撞之后也是如此。我已将重力设置为 0,摩擦设置为 0,线性和角度阻尼设置为零,但 Sprite 仍会缓慢减速至零速度。我怎样才能让他们继续前进?
根据下面的答案,这是我尝试过的: 编辑下面的代码有效!我只需要检查节点的运行速度是否低于限制并加快速度。
[self enumerateChildNodesWithName:kBallName usingBlock:^(SKNode *node, BOOL *stop)
{
SKSpriteNode *ball = (SKSpriteNode *)node;
if (ball.physicsBody.velocity.dx < 0) {
if (ball.physicsBody.velocity.dx > -50)
ball.physicsBody.velocity = CGVectorMake(-50, ball.physicsBody.velocity.dy);
}
if (ball.physicsBody.velocity.dx > 0) {
if (ball.physicsBody.velocity.dx < 50)
ball.physicsBody.velocity = CGVectorMake(50, ball.physicsBody.velocity.dy);
}
if (ball.physicsBody.velocity.dy < 0) {
if (ball.physicsBody.velocity.dy > -50)
ball.physicsBody.velocity = CGVectorMake(ball.physicsBody.velocity.dx, -50);
}
if (ball.physicsBody.velocity.dy > 0) {
if (ball.physicsBody.velocity.dy > 50)
ball.physicsBody.velocity = CGVectorMake(ball.physicsBody.velocity.dx, 50);
}
}];
【问题讨论】:
-
一开始你是如何让他们动起来的?
-
我只是在创建它们时施加了一种冲动。我应该发布什么代码?我认为它主要是通用的 Sprite 创建代码,但如果需要,我可以将其放入。
标签: ios sprite-kit skspritenode skphysicsbody skphysicsworld