株式会社ブリッジ・メタウェア
(株)ブリッジ・メタウェアの社員ブログです。
開発していく中での発見や情報を発信していきます!

OpenGLでぶんぶんループを回っているようなアプリは、かなりの勢いで電池を消費するようです。
プレイヤーが考えている時間が長いパズルゲームを作ってしまったので、プレイしている間に消費電力を抑える工夫が必要でした。
そこで一定の間操作が無かったらOpenGLのループを回さない、というごく単純な戦略をとりました。

// アニメーション開始
- (void)startAnimation {
  // 動作中のタイマーがあったら停止
  if (animationTimer != nil && [animationTimer isValid]) {
    [animationTimer invalidate];
    animationTimer = nil;
  }
  // タイマー開始時間をメモ
  startTime = [NSDate timeIntervalSinceReferenceData];

  // 描画タイマー開始(30fpsをメドで再描画)
  animationTimer =
    [NSTimer scheduledTimerWithTimeInterval:1.0/30
          target:self selector:@selector(draw) userInfo:nil repeats:TRUE];
}

// アニメーション停止
- (void)stopAnimation {
  if (animationTimer != nil && [animationTimer isValid]) {
    [animationTimer invalidate];
  }
  animationTimer = nil;
}

// ドラッグイベントハンドラ
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
  // 操作時間更新
  startTime = [NSDate timeIntervalSinceReferenceDate];
  // ドラッグの処理
}

// 描画メソド
- (void)draw{
  // オブジェクトの描画

  NSTimeInterval now = [NSDate timeIntervalSinceReferenceDate];
  NSTimeInterval interval = now - startTime;
  // 何もしていない時間が5秒あったらループ停止
  if (interval > 5) {
    [self stopAnimation];
  }
}

こんな感じでアニメーションを停止するようにしました。
これで触っていないときに電池の減りを抑えることができました。

|trackbacks(2) |15:08 2010/11/05
トラックバック
この記事へのトラックバックURL

Tweetback from 赤羽 剛

OpenGLで省電力 « BridgeMetaware http://htn.to/8EkQRj

at 02:11 2011/07/12
Tweetback from ブリッジ・メタウェア

【ブログ更新】 OpenGLで省電力 – OpenGLでぶんぶんループを回っているようなアプリは、かなりの勢いで電池を消費するようです。プレイヤーが考えている時間が長いパズルゲームを作ってしまったので、プレイしている間に消費電力… http://wp.me/p18NTR-7L

at 06:08 2010/11/05
ENTRY
  • UIBezierPathの描画で注意するべきこと
  • iPhone4でVGA出力
  • iPhoneアプリ審査落ち
  • OpenGLで省電力
  • iPhone/iPadアプリでのXMLパース
  • 実機で画像が表示されない
  • iPhone/iPadクライアントとサーバ間通信
  • バージョンアップ承認
  • アプリ更新
  • IBを使わない開発
  • CATEGORY
  • iPhone/iPad開発 (9)
  • Objective-C (2)
  • OpenGL (1)
  • その他 (1)
  • コラム (2)
  • 技術情報 (5)
  • 未分類 (2)
  • 製品情報 (2)
  • ARCHIVE
  • 2010年11月 (6)
  • 2010年10月 (5)
  • RECENT TRACKBACKS
  • 2011/7/12 OpenGLで省電力 « BridgeM...
  • 2011/6/21 今度TBXMLと速度比較し...
  • 2010/12/4 [iPhoneSDK] / UIBezierPathの...
  • 2010/12/2 アンチエイリアスが有...
  • 2010/11/28 iPhone/iPadアプリでのXML...

  • BM ON FACE BOOK
    Copyright © 2011 Bridge Metaware Co., Ltd. All Rights Reserved.