初期化の処理
viewDidLoadにいれたけどどこでもよさげ
更新周期は0.01秒
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.01]; // アップデートする周期 [[UIAccelerometer sharedAccelerometer] setDelegate:self];
初期化すると次のハンドラにさっきので指定した周期でコールされる
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
シェイクの検出
X,Y,Zのセンサのうちどれかが2.0G以上ならシェイクされたと判断する
if(fabsf(acceleration.x) > 2.0 || fabsf(acceleration.y) > 2.0 || fabsf(acceleration.z) > 2.0){
落下の検出
落下するとき、物質の質量は0になるので、X,Y,Z軸すべてが0の時とやればいいのだが、実際のセンサの値は0にはならないようでいろいろためしたけど0.2G以下になったら検出というのが一番しっくりきた
if(fabsf(acceleration.x) < 0.2 &amp;&amp; fabsf(acceleration.y) < 0.2 &amp;&amp; fabs(acceleration.z) < 0.2) {
if(time(NULL) - tmEvent <= 1)
return;
tmEvent = time(NULL);
}
加速度センサのコールバックは初期化した時のパラメータでがんがんよばれるので、最後に落下を検出したときから1秒以上たっていたら、、という処理も追加したらいい感じになった。
tAkatronixおすすめのiPhone開発本
iPhone デベロッパーズ クックブック
posted with amazlet at 10.01.31
Erica Sadun
ソフトバンククリエイティブ
売り上げランキング: 84906
ソフトバンククリエイティブ
売り上げランキング: 84906
詳解 Objective-C 2.0
posted with amazlet at 10.01.31
荻原 剛志
ソフトバンククリエイティブ
売り上げランキング: 4163
ソフトバンククリエイティブ
売り上げランキング: 4163
iPhoneプログラミングUIKit詳解リファレンス
posted with amazlet at 10.01.31
所 友太
リックテレコム
売り上げランキング: 3089
リックテレコム
売り上げランキング: 3089
iPhone Core Audioプログラミング
posted with amazlet at 10.01.31
永野 哲久
ソフトバンククリエイティブ
売り上げランキング: 22615
ソフトバンククリエイティブ
売り上げランキング: 22615





FREEEK iPhone App 2.0 on iTunes App Store!!
[iPhone]インストールしている脱獄アプリ
#1 by shutennyoku on 2009/10/29 - 11:41 PM
本当の役に立つ方法だった。ありがとうね
#2 by takatronix on 2009/10/29 - 11:42 PM
ありがとうございます。
やる気がでましたwwまた更新しますね。
twitterでもフォローしてくださいねw