Slide 20
Slide 20 text
-(void)update {
float x_acc, y_acc, phi, a_eff;
if (self.sharedManager.accelerometerActive) {
CMAccelerometerData *accData = self.sharedManager.accelerometerData;
x_acc = accData.acceleration.x;
y_acc = accData.acceleration.y;
} else {
x_acc = 0;
y_acc = -1.0;
}
/* calculations */
[CATransaction begin];
[CATransaction setDisableActions:YES];
self.bar1.angle = self.current[0];
self.bar2.angle = self.current[1];
self.bar2.position = self.bar1.tailPosition;
self.emitterLayer.emitterPosition = self.bar1.tailPosition;
self.emitterCell.birthRate = floorf(fabsf(self.current[2]-self.current[3])*10);
self.emitterCell.velocity = fabsf(self.bar1.length*self.current[2]);
[CATransaction commit];
}
_displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(update)];
[self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
Pull data from accelerometer
Disable implicit animation
Setup CADisplayLink for updating data
Use [_displayLink setPause:YES]
to stop animation
12年9月10日星期⼀一