TMotionSensorの加速度を使ったシンプルなアプリ[JAPAN]

Posted by on in Programming

TMotionSensorはデバイスの動きの加速度、角度、状態、速度に関する情報を提供するコンポーネントです。

http://docwiki.embarcadero.com/Libraries/Tokyo/ja/System.Sensors.TCustomMotionSensor

上記URLに詳細は書いていますが

その中で加速度プロパティを使ってiOS / Androidで試してみました。

 



 

 

 

 

[1.新規プロジェクトの作成]


 メニューから[ファイル|新規作成|マルチデバイス アプリケーション - C++Builder]を選択し

[空のアプリケーション]を選びます。

 

 

 

[2.フォームにコンポーネントの配置]


 右下の[ツールパレット]からメインフォームへTButton, TMotionSensor, TTimerを配置します。

 

 

 

[3.プロパティの設定]


 

フォームに配置されたMotionSensor1を選択し、右下のオブジェクトインスペクタプロパティ内のActiveをtrueにします。

 

フォームに配置されたTimer1を選択し、右下のオブジェクトインスペクタプロパティ内のIntervalを100〜10に設定します。 

 

 

 

 

[4.タイマーイベントにコードを書く]


Timer1を指定し右下のオブジェクトインスペクタ [イベント]を選択し、OnTimerをダブルクリックします。

タイマーイベントにコードを書きます。

//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
	Button1->Position->X = Button1->Position->X + MotionSensor1->Sensor->AccelerationX*15;
	if (Button1->Position->X < 0) Button1->Position->X = 0;
	if (Button1->Position->X > (this->Width-Button1->Width))
		Button1->Position->X = this->Width-Button1->Width;

	Button1->Position->Y = Button1->Position->Y - MotionSensor1->Sensor->AccelerationY*15;
	if (Button1->Position->Y < 0) Button1->Position->Y = 0;
	if (Button1->Position->Y > (this->Height-Button1->Height))
		Button1->Position->Y = this->Height-Button1->Height;
}
//---------------------------------------------------------------------------

 

 

[5.ターゲットをAndroidデバイスに指定し実行]


 右側の[プロジェクトマネージャー]の[ターゲット プラットフォーム]一覧から「Android」を選択します。

メニュー[実行|デバッガを使わずに実行]もしくは下のアイコンをクリックすると

実機に配置され実行されます。

 



About
Gold User, No rank,
Delphi / C++Builder blogger

Comments

Check out more tips and tricks in this development video: