Como detectar um balanço no iPhone ?
Pesquisei um pouco para atender a pedidos de alunos em aula e achei algumas classes que usam C, mexi um pouco e alterei o conceito, e criei uma forma em Cocoa, segue código pros curiosos:
Depois de chamar pelo acelerometro*, no delegate dele use o seguinte:
-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
UIAccelerationValue length, x, y, z;
[myAccelerometer insertObject:[[NSNumber alloc] initWithFloat:(acceleration.x * 0.1 + [[myAccelerometer objectAtIndex:0] floatValue] * (1.0 - 0.1))] atIndex:0];
[myAccelerometer insertObject:[[NSNumber alloc] initWithFloat:(acceleration.y * 0.1 + [[myAccelerometer objectAtIndex:0] floatValue] * (1.0 - 0.1))] atIndex:1];
[myAccelerometer insertObject:[[NSNumber alloc] initWithFloat:(acceleration.z * 0.1 + [[myAccelerometer objectAtIndex:0] floatValue] * (1.0 - 0.1))] atIndex:2];
x = acceleration.x - [[myAccelerometer objectAtIndex:0] floatValue];
y = acceleration.y - [[myAccelerometer objectAtIndex:0] floatValue];
z = acceleration.z - [[myAccelerometer objectAtIndex:0] floatValue];
length = sqrt(x * x + y * y + z * z);
if(length >= 2.0) {
NSLog(@"UHHHH Vibrei!!!!");
}
*Para instanciar o acelerometro com o delegate sendo a propria classe:
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / 25)];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
Promoções na App Store: Star Wars: KOTOR II, Old Monterrey: Pixel
Adventure, Cash Log Basic e mais!
-
Abrindo a semana e o mês de maio nesta segunda-feira, com a nossa seleção
de promoções na App…
Há 5 dias


