Я использую следующий код, чтобы мяч падал, и всякий раз, когда я нажимаю его, он должен прыгать назад, следовательно, применять импульс в моем методе touchhesBegan. Однако, когда я запускаю этот код, мяч начинает падать, но когда я нажимаю на него, он просто падает. Что я делаю не так?Применить импульс не работает
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
[ball.physicsBody applyImpulse:CGVectorMake(0, 8)];
}
-(void) addBall
{
SKShapeNode *ball;
ball = [SKShapeNode shapeNodeWithCircleOfRadius:30];
ball.strokeColor = [SKColor colorWithRed:114.0f/255.0f green:84.0f/255.0f blue:123.0f/255.0f alpha:1.0];
ball.fillColor = [SKColor colorWithRed:114.0f/255.0f green:84.0f/255.0f blue:123.0f/255.0f alpha:1.0];
ball.position = CGPointMake(self.size.width/2,self.size.height/2);
//add physics body
ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:30];
[self addChild:ball];
}
-(void)didMoveToView: (SKView *)view
{
self.backgroundColor = [UIColor colorWithRed:113.0f/255.0f green:255.0f/255.0f blue:248.0f/255.0f alpha:1.0];
//add phsyics body to the scene
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
//change gravity
self.physicsWorld.gravity = CGVectorMake(0, -6);
[self addBall];
}
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */
}
Он по-прежнему не применяет импульс с этим кодом. –
Я поставил инструкцию NSLog, чтобы проверить, вообще ли он регистрирует кран, но он просто не применяет этот импульс. –
Я протестировал его. Вы добавили имя на свой бал? как этот ball.name = @ "ball"; –