파이티스

안드로이드 스튜디오 주사위게임 앱 제작 3 - 로직개발하기 본문

Android/APP 만들기

안드로이드 스튜디오 주사위게임 앱 제작 3 - 로직개발하기

파이티스 2023. 8. 15. 20:37

 

앞서 안드로이드 스튜디오 주사위게임 앱 만들기 1편과 2편으로 세팅과 화면개발까지는 마쳤다. 이번시간에는 앱에 생명을 불어넣는 로직개발을 하여 주사위게임 앱개발 마무리를 지어보려고 한다.

 

멤버변수 만들기

화면에서 유저와 인터랙티브(Interactive) 되는 뷰들은 멤버변수로 만든다.

 

멤버변수를 만들때 중요한것은 id이다. 지금은 간단하게 만드는것이라 id값을 신경쓰지 않았지만 복잡한 구성의 여러개의 화면구성을 할때는 id값이 매우 중요하다.

 

 

여기서 한가지 팁이 있는데 Design은 화면을 직관적으로 시각화 하여 보는것이지만 탭에서 Code를 클릭하면 소스코드로도 볼 수 있다. 다른곳에서 디자인을 복사한다면 소스코드를 복사해서 붙여넣기 하면 쉽게 작업을 할 수 있다.

 

 

아래와 같이 주사위 이미지 2개와 버튼1개를 멤버변수로 만들어 준다.

 

public class MainActivity extends AppCompatActivity {

   // 멤버변수 만들기
   
    ImageView imageView2;  // 첫번째 주사위 
    ImageView imageView3;  // 두번째 주사위
    Button button;         // 버튼


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

 

화면과 연결하기

 

'imageView2 = findViewById(R.id.imageView2)'와 같은 코드는 XML 레이아웃에서 정의한 위젯을 Java 코드와 연결하는 역할을 한다. 예를들어서 R.id.imageView2는 XML 파일에서 정의한 ImageView 위젯의 식별자를 의미한다.

 

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

		// 화면과 java코드와 연결
        
        imageView2 = findViewById(R.id.imageView2);
        imageView3 = findViewById(R.id.imageView3);
        button = findViewById(R.id.button);

 

버튼을 눌렀을때 로직구현

 

버튼을 클릭했을때 이벤트 처리를 하기 위한 코드작성 버튼이 클릭되면 내부의 onClick(View view) 메서드의 내용일 실행된다.

 

        button.setOnClickListener(new View.OnClickListener() {
            @Override
                public void onClick(View view) {

            }
        });

 

onClick(View view) 메서드내 로직 구현

 

주사위 1 (imageView2)과 주사위 2(imageView3)의 눈을 1부터 6까지의 랜덤한 정수로 표시하기 위한 코드 작성.

 

아래는 onCLICK(View view)매서드내에 로직을 구현한 최종 주사위앱 소스코드 전부다. 화면개발을 하고 메인액티비티에 아래와 같이 소스코드를 넣으면 앱이 정삭적으로 실행이 될 것이다.

 

단, 화면개발할때 id이름을 정확하게 지정되어야 한다.

 

public class MainActivity extends AppCompatActivity {

    ImageView imageView2;
    ImageView imageView3;
    Button button;


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


        imageView2 = findViewById(R.id.imageView2);
        imageView3 = findViewById(R.id.imageView3);
        button = findViewById(R.id.button);


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Random random = new Random();
                int num1 = random.nextInt(5 + 1);
                int num2 = random.nextInt(5 + 1);

                if (num1 == 0) {
                    imageView2.setImageResource(R.drawable.dice1);
                } else if (num1 == 1) {
                    imageView2.setImageResource(R.drawable.dice2);
                } else if (num1 == 2) {
                    imageView2.setImageResource(R.drawable.dice3);
                } else if (num1 == 3) {
                    imageView2.setImageResource(R.drawable.dice4);
                } else if (num1 == 4) {
                    imageView2.setImageResource(R.drawable.dice5);
                } else if (num1 == 5) {
                    imageView2.setImageResource(R.drawable.dice6);
                }


                if (num2 == 0) {
                    imageView3.setImageResource(R.drawable.dice1);
                } else if (num2 == 1) {
                    imageView3.setImageResource(R.drawable.dice2);
                } else if (num2 == 2) {
                    imageView3.setImageResource(R.drawable.dice3);
                } else if (num2 == 3) {
                    imageView3.setImageResource(R.drawable.dice4);
                } else if (num2 == 4) {
                    imageView3.setImageResource(R.drawable.dice5);
                } else if (num2 == 5) {
                    imageView3.setImageResource(R.drawable.dice6);
                }

            }

        });

    }
}

 

완성

 

"ROLL THE DICE!" 버튼을 누르면 두개의 주사위가 랜덤으로 눈이 바뀐다. 

 

 

안드로이드 스튜디오를 사용하여 주사위게임 앱을 만들어봤다. 다음시간에는 버튼을 클릭했을때 효과음이 나오게 하는방법과 주사위가 바뀌때마다 애니메이션 효과를 주는 방법에 대해서 공부해보겠다.