Если у меня есть два объекта в бурундуке (я использую cocos2d-iphone), когда я обнаружу, что они столкнулись, как я могу определить, насколько сильно они бьют друг друга?
Я хочу, чтобы их сила (в зависимости от скорости) знала ущерб от столкновения.
Я видел дискуссию о том, как это сделать, но никогда не работал конкретный код (и я не мог заставить его работать, хотя думал, что знаю, что делаю). Для полноты, вот код, который я я использую, чтобы определить скорость столкновения, так, как точно я пойду на обнаружение Силы столкновения?
- (BOOL) handleCollisionBetweenBalls:(CollisionMoment)moment arbiter:(cpArbiter*)arb space:(cpSpace*)space {
JjrFootprint(@"handleCollisionBetweenBalls");
if (moment == COLLISION_BEGIN) {
JjrLog(@"Balls Collide");
CP_ARBITER_GET_SHAPES(arb, a, b);
cpVect va;
cpVect vb;
va = a->body->v;
vb = b->body->v;
cpVect vNet = cpvadd(va,vb);
cpFloat Length = cpvlength(vNet);
// 7 = barely touching
// 1000 = hard
if (Length > 100) {
[[SimpleAudioEngine sharedEngine] playEffect:@"board.wav"];
}
}
return YES;
}
Спасибо,
JJ