Я хочу, чтобы шарик-спрайт прыгал с земли каждый раз на ту же высоту. Но при каждом прыжке максимальное положение высоты мяча увеличивается.SpriteKit: неожиданный физический вопрос
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
SKNode *ground = [SKNode node];
ground.physicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:CGPointZero toPoint:CGPointMake(CGRectGetMaxX(self.frame), 0)];
[self addChild:ground];
SKShapeNode *ball = [[SKShapeNode alloc] init];
CGMutablePathRef myPath = CGPathCreateMutable();
CGPathAddArc(myPath, NULL, 0, 0, 30, 0, M_PI*2, YES);
ball.path = myPath;
ball.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame)-100);
ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ball.frame.size.width/2];
ball.physicsBody.linearDamping = 0.0;
ball.physicsBody.restitution = 1.0;
[self addChild:ball];
}
return self;
}
Любые предложения?
Какое отношение имеет узел к физике? Т.е. основному физическому телу не влияет связанное с ним представление. – LearnCocos2D
Я думал то же самое, а затем начал использовать круговые узлы формы, такие как OP, и столкнулся с странными проблемами с физическими телами, которые были исправлены с помощью узлов спрайтов. Возможно, не проблема здесь, но в любом случае, я верю, что узлы в форме приведут вас к неприятностям в какой-то момент их текущего состояния. Вы не согласны? – Matt
Я нахожу это очень маловероятным. Почему взгляд должен иметь какое-то значение для тела, тела одного и того же? И почему тело будет отличаться в зависимости от взгляда? Единственное, что может случиться, - это использовать свойства представления, такие как self.frame, для инициализации физического тела, как в этом примере (т. Е. Радиус зависит от ball.frame.size). – LearnCocos2D