요약
1. BGM이 재생 중일 때 재생 버튼을 누르면 재생이 안 되게 하였고, BGM이 재생 중이 아닐 때 입력 버튼을 눌러도 반응이 없도록 하였음.
2. Custom Dialog를 이용하여 도움말 버튼을 누르면 팝업창이 띄워지도록 하였음.
3. 음악 추가
본문
1. BGM 버튼 버그 해결
여러 방법을 찾아보았으나 그냥 원시적으로, 첫 상태는 0, 음악이 재생되면 1, 음악을 입력받으면 다시 0으로 바꾸면서, 지금 1인데 재생 버튼을 누르면 음악이 재생 중이라는 Toast 메시지를 띄우고, 0인데 입력 버튼을 누르면 음악이 재생 중이 아니라는 Toast 메시지를 띄웠다.
PlayActivity.kt
// 위에 생략
binding.bgmplayButton.setOnClickListener {
if (on == 0) {
pos = (Math.random() * 28).toInt()
if (pos == 0) {
mPlayer = MediaPlayer.create(this, R.raw.title)
}
// 이하 생략
mPlayer.start()
on = 1
}
else if (on == 1) {
Toast.makeText(applicationContext, "음악이 이미 실행 중입니다.", Toast.LENGTH_SHORT).show()
}
}
binding.answerButton.setOnClickListener {
if (on == 0) {
Toast.makeText(applicationContext, "음악이 실행 중이 아닙니다.", Toast.LENGTH_SHORT).show()
}
else if (on == 1) {
var answerText = binding.answerText.text.toString()
if ((answerText == nameArray[pos]) || (answerText == nameEngArray[pos])) {
score = score + 1
message += "정답입니다!"
}
Toast.makeText(applicationContext, message + "현재 점수는 " + score + "점입니다.", Toast.LENGTH_SHORT).show()
mPlayer.stop()
on = 0
message = ""
}
}
// 아래 생략
2. 도움말 팝업창 추가
팝업창을 위한 custon_dialog.xml(custom인데 오타남..)을 제작해 주고 Play 액티비티에서 도움말 버튼을 누르면 custon_dialog.xml이 팝업창으로 나타나도록 하였다. 팝업창에서 닫기 버튼(closeButton)을 누르면 Dialog가 꺼진다.(mAlertDialog.dismiss())
PlayActivity.kt
// 위에 생략
binding.helpButton.setOnClickListener {
val mDialogView = LayoutInflater.from(this).inflate(R.layout.custon_dialog, null)
val mBuilder = AlertDialog.Builder(this)
.setView(mDialogView)
val mAlertDialog = mBuilder.show()
val closeButton = mDialogView.findViewById<ImageButton>(R.id.closeButton)
closeButton.setOnClickListener {
mAlertDialog.dismiss()
}
}
// 아래 생략
custon_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/mainbackground"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="550dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="20dp"
android:layout_height="match_parent"
android:orientation="horizontal"></LinearLayout>
<ImageView
android:id="@+id/imageView3"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
app:srcCompat="@drawable/information" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
<ImageButton
android:id="@+id/closeButton"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:adjustViewBounds="true"
android:backgroundTint="@android:color/transparent"
android:contentDescription="Help"
android:padding="0dp"
android:scaleType="fitCenter"
android:src="@drawable/closebutton" />
</LinearLayout>
</LinearLayout>
실행 영상
다음 할 일
가능할 진 모르겠지만 시간 제한을 둘 생각이다.(Easy : 1분, Normal : 30초, Hard : 10초)
안 되면 어쩔 수 없고...
GitHub
https://github.com/littlesam95/Maplebgm
'개인 프로젝트 > 안드로이드' 카테고리의 다른 글
[메이플 브금 맞추기] 게임 하는 법 (0) | 2022.03.11 |
---|---|
[개인 프로젝트] 메이플 브금 맞추기 앱 #7 (0) | 2022.03.10 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #5 (0) | 2022.03.03 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #4 (0) | 2022.02.21 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #3 (0) | 2022.02.17 |