요약
1. 재생 버튼을 눌러 음악이 랜덤으로 재생되게 하였고, 입력 버튼을 누르면 음악을 멈추고 정답인지 아닌지를 확인하고 정답이면 점수가 1 올라가게 하였음.
본문
Room을 사용하여 정답과 관련된 데이터를 저장하고 데이터를 이용해볼까 하고 Room을 조사해 보았으나 지금 능력으로는 힘들다고 판단해 그냥 초보적으로 진행하기로 하였다. 난수를 발생시켜 음악을 랜덤 재생하고, EditText에 답을 작성하고 입력 버튼을 누르면 음악이 멈추고 정답을 판별하도록 하였다.
Room을 조사하던 중에 벽을 느끼고 한동안 안 건드렸는데 초보적인 방식을 생각해서라도 계속 진행할 걸 그랬다.
혼자 하는 게 어렵긴 어려운듯...
PlayActivity.kt
package com.bodan.maplebgm
import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.bodan.maplebgm.databinding.ActivityPlayBinding
class PlayActivity : AppCompatActivity() {
private var toast : Toast? = null
private var mBinding : ActivityPlayBinding? = null
private val binding get() = mBinding!!
var pos = 0
var nameArray = arrayOf("로그인", "리스항구", "헤네시스필드", "엘리니아", "페리온", "커닝시티", "헤네시스", "오르비스", "엘나스", "루디브리엄", "아리안트", "마가티아", "에레브", "에레브연무장")
var nameEngArray = arrayOf("Title", "Above the Treetops", "Rest N Peace", "When the Morning Comes", "Nightmare", "Bad Guys", "Floral Life", "Shinin' Harbor", "Snowy Village", "Fantastic Thinking", "Ariant", "Dispute", "Queen's Garden", "Drill Hall")
private lateinit var mPlayer : MediaPlayer
private var score = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mBinding = ActivityPlayBinding.inflate(layoutInflater)
setContentView(binding.root)
if (intent.hasExtra("idText")) {
val id = intent.getStringExtra("idText")
toast?.cancel()
toast = Toast.makeText(applicationContext, id + "님 환영합니다!", Toast.LENGTH_SHORT)
toast?.show()
}
binding.bgmplayButton.setOnClickListener {
pos = (Math.random() * 14).toInt()
if (pos == 0) {
mPlayer = MediaPlayer.create(this, R.raw.title)
}
else if (pos == 1) {
mPlayer = MediaPlayer.create(this, R.raw.abovethetreetops)
}
else if (pos == 2) {
mPlayer = MediaPlayer.create(this, R.raw.restnpeace)
}
else if (pos == 3) {
mPlayer = MediaPlayer.create(this, R.raw.whenthemorningcomes)
}
else if (pos == 4) {
mPlayer = MediaPlayer.create(this, R.raw.nightmare)
}
else if (pos == 5) {
mPlayer = MediaPlayer.create(this, R.raw.badguys)
}
else if (pos == 6) {
mPlayer = MediaPlayer.create(this, R.raw.florallife)
}
else if (pos == 7) {
mPlayer = MediaPlayer.create(this, R.raw.shininharbor)
}
else if (pos == 8) {
mPlayer = MediaPlayer.create(this, R.raw.snowyvilage)
}
else if (pos == 9) {
mPlayer = MediaPlayer.create(this, R.raw.fantasticthinking)
}
else if (pos == 10) {
mPlayer = MediaPlayer.create(this, R.raw.ariant)
}
else if (pos == 11) {
mPlayer = MediaPlayer.create(this, R.raw.dispute)
}
else if (pos == 12) {
mPlayer = MediaPlayer.create(this, R.raw.queensgarden)
}
else if (pos == 13) {
mPlayer = MediaPlayer.create(this, R.raw.drillhall)
}
mPlayer.start()
}
binding.answerButton.setOnClickListener {
var answerText = binding.answerText.text.toString()
if ((answerText == nameArray[pos]) || (answerText == nameEngArray[pos])) {
score = score + 1
toast = Toast.makeText(applicationContext, "정답입니다!", Toast.LENGTH_SHORT)
toast?.show()
}
toast?.cancel()
toast = Toast.makeText(applicationContext, "현재 점수는 " + score + "점입니다.", Toast.LENGTH_SHORT)
toast?.show()
mPlayer.stop()
}
}
}
실행 영상
다음 할 일
음악이 재생되는 도중에 재생을 한번 더 누르면 다른 음악이 재생되는데 해결해야겠다. 그리고 정답을 맞췄으면 정답이라는 Toast 메시지를 출력하고 싶은데 왜 안 되는지 조사해야겠다. 그리고 BGM 추가를 더 할 생각이다. 진짜 그냥 BGM만 줄창 추가하다 끝날 듯.. 처음부터 너무 어려운 걸 골랐나보다..
GitHub
'개인 프로젝트 > 안드로이드' 카테고리의 다른 글
[개인 프로젝트] 메이플 브금 맞추기 앱 #7 (0) | 2022.03.10 |
---|---|
[개인 프로젝트] 메이플 브금 맞추기 앱 #6 (0) | 2022.03.04 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #4 (0) | 2022.02.21 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #3 (0) | 2022.02.17 |
[개인 프로젝트] 메이플 브금 맞추기 앱 #2 (0) | 2022.02.16 |