SOB RELEASE 이전) 정확한 노트 판정을 위해 코드 수정

2017. 5. 15. 23:16프로젝트(완료)/SOB DEVELOP

진동이 울리기 전 1초동안 버튼을 한번 이상 누르면 bad
진동이 울리고 나서 버튼을 2번 이상 누르면 bad
진동이 울리고 나서 0.5초 안 버튼을 누르지 못하면 bad

진동이 울리기 시작한 시점부터 1초사이에 버튼을 1개 누르면 perfect

테스트용이므로 시간 미세 조정은 아래에 나와있지 않음.

package com.example.gimdohyeon.vibsample; import android.content.Context; import android.os.Handler; import android.os.Vibrator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity { int notesuccuess,notefail,handle1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void note1(){ Handler handler = new Handler(); handle1 = 0; notefail = 0; notesuccuess = 0; handler.postDelayed(new Runnable() { Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); @Override public void run() { handle1 = 1; vibrator.vibrate(500); } },1000); handler.postDelayed(new Runnable() { @Override public void run() { handle1 = 2; } },1500); handler.postDelayed(new Runnable() { @Override public void run() { Toast badToast = Toast.makeText(MainActivity.this, "bad", Toast.LENGTH_SHORT); Toast perfectToast = Toast.makeText(MainActivity.this, "perfect", Toast.LENGTH_SHORT); if(notefail > 0 || notesuccuess != 1){ badToast.show(); }else if(notesuccuess == 1){ perfectToast.show(); } handle1 = 0; notefail = 0; notesuccuess = 0; } },2000); } public void onclick(View view) { switch (view.getId()){ case R.id.btn_start: note1();//여기다가 노트 순서대로 시간맞춰서 넣으면 끝 break; case R.id.btn_note: if(handle1 == 0){ notefail++; }else if(handle1 == 1 || handle1 ==2) { notesuccuess++; } break; } } }