わいずふぁくとりいがプログラムの話題をウィキします。

<<画面へのタッチを捕捉する

ノーム・メトロにするためには


時間間隔(interval)を求める

 さて、ノーム・メトロにするためには、前回のタッチとの、時間間隔(interval)を求めないといけない。

public class nomeMetro {
	protected long __last_time = 0;

	public int Action(long time)
	{
		long interval = time - __last_time;
		__last_time = time;
		return tempo(interval);
	}

テンポに換算

 時間間隔から、テンポに換算するルーチンを考えてみよう。
 取得した時間は、ミリ秒だから、秒に直す。
 それを逆数にして、1秒間に何回タッチされたか?にする。
 テンポは1分間に何個か?だから、60をかける。
 最後に四捨五入して、整数化している。

	protected int tempo(long interval)
	{
		double tempo = 60.0 / (double)interval * 1000.0;
		return (int)Math.round(tempo);
	}
}
 
 画面にタッチされたときに、今のテンポを表示するには・・

public class MainActivity extends Activity {
	protected void onDown(MotionEvent event)
	{
		int tempo = __nomeMetro.Action(event.getEventTime());
		tempoNow.setText(String.valueOf(tempo));
	}
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

管理人/副管理人のみ編集できます