마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

게임인데 터치대신 자이로센서로 바꾸고싶어요

0 추천
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
import android.widget.RelativeLayout;
import android.widget.TextView;

import java.util.Random;

public class GameActivity extends Activity implements OnChronometerTickListener {

   public final static String EXTRA_COUNT = "extra";
   public final static int RESULT_COUNT = 1;
   private final static int MAX_TIME = 10;
   private static final long TIME_TO_PAUSE = 3;


   private TextView textNumber;
   private TextView textChronometer;
   private RelativeLayout stopedLayout;
   private RelativeLayout mainLayout;
   private RelativeLayout infoLayout;

   private Chronometer chronometer;
   private int countTouches;
   private boolean paused;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_game);

      countTouches = 0;
      paused = false;

      stopedLayout = (RelativeLayout) findViewById(R.id.game_layout_stoped);
      infoLayout = (RelativeLayout) findViewById(R.id.game_layout_info);
      textNumber = (TextView) findViewById(R.id.game_text_number);
      textChronometer = (TextView) findViewById(R.id.game_text_chronometer);
      mainLayout = (RelativeLayout) findViewById(R.id.game_layout);

      textChronometer.setText(String.valueOf(MAX_TIME));

      chronometer = (Chronometer) findViewById(R.id.game_chronometer);
      chronometer.setBase(SystemClock.elapsedRealtime());
      chronometer.setOnChronometerTickListener(this);
      chronometer.start();

   }

   @Override
   public boolean onTouchEvent(MotionEvent event) {

      if (event.getAction() == MotionEvent.ACTION_DOWN && !paused) {
         countTouches++;

         textNumber.setText("" + countTouches);

         int color;
         Random rnd = new Random();
         color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
         mainLayout.setBackgroundColor(color);
      }

      return super.onTouchEvent(event);

   }

   @Override
   public void onPause() {
      super.onPause();

      if (chronometer != null) {
         chronometer.stop();
      }
   }

   @Override
   public void onResume() {
      super.onResume();

      if (chronometer != null) {
         chronometer.start();
      }
   }


   @Override
   public void onChronometerTick(Chronometer chrono) {
      long seconds = ((SystemClock.elapsedRealtime() - chrono.getBase()) / 1000) % 60;
      textChronometer.setText(String.valueOf((MAX_TIME - seconds)));

      if (seconds == MAX_TIME) {

         mainLayout.setBackgroundColor(Color.RED);
         infoLayout.setVisibility(View.GONE);
         stopedLayout.setVisibility(View.VISIBLE);

         paused = true;

         chrono.stop();
         chronometer.setBase(SystemClock.elapsedRealtime());
         chrono.start();

      } else if (paused && seconds == TIME_TO_PAUSE) {
         chrono.stop();

         final Intent newActivity = new Intent(this, Top10Activity.class);
         newActivity.putExtra(Top10Activity.EXTRA_COUNTS, countTouches);
         startActivity(newActivity);
      }
   }
}
 
 
게임을 만드는데 현재 스크린 터치시 스코어가 올라가게 되어있습니다.
스크린 터치를 자이로 센서로 바꿔서 흔들면 스코어가 올라가게 만들고싶습니다.
전문가님들의 아낌없는 조언 부탁드립니다!!
제발해결좀해주세요 님이 2019년 6월 6일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...