본문 바로가기
JavaScript

[TIL] 마우스 클릭 시 효과음 넣기

by 어느새벽 2024. 4. 18.

팀프로젝트로 웹페이지를 만들며 컨셉에 맞게

간단한 게임 요소를 넣기로 했다.

그래서 구현하게 된 퍼즐게임.

 

 

퍼즐게임은 '데브리'님의 강의 영상을 참고했다.

https://youtu.be/iTBZdg7tg-w?si=m6GbOKlwihkJPyDV

 

 

아래 영상처럼 퍼즐게임이 잘 구현되었지만

퍼즐이 옮기는데에 있어 조작감이 아쉬운 느낌이다.

그래서 퍼즐 클릭 시 효과음을 넣기로 했다.

 

 

 

효과음 반영하는 코드 작성은 아래 블로그를 참고했다.

https://record-ay.tistory.com/32

 

[HTML] 클릭시 효과음 넣기

1. 스킨 편집 들어간 후 html 편집 들어가기 html편집하기에서 아래 소스 복사해서 넣기 2. 마우스 클릭 효과음 다운로드 http://itthe.net/15 3. 클릭 효과음 다운받고 적용하면 약간 소리가 짤리더라구

record-ay.tistory.com

 

<html >
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>퍼즐게임</title>
 
    <!--생략-->
 
    <audio id='audio_play' src='효과음.mp3'></audio>
</head>
</html >

 

<html>

 

먼저 원하는 효과음.mp3 파일을 다운로드한 뒤

html문서 <head> 안에 

<audio>태그를 넣고 mp3파일을 연결한다.

 

function play() {
  var audio = document.getElementById('audio_play');
  if (audio.paused) {
    audio.play();
  } else {
    audio.pause();
    audio.currentTime = 0
  }
}

 

<js>

스크립트 파일에 위처럼 효과음 반영하는 함수를 선언하고

 

 

 

//게임 시작
function setGame() {
  play();
  isPlaying = true;
  time = 0;
  container.innerHTML = "";
  gameText.style.display = 'none'
  clearInterval(timeInterval)

// 생략
}

// 생략

// 마우스 이벤트
container.addEventListener('dragstart', e => {
  play();

  if(!isPlaying) return;
  const obj = e.target;
  dragged.el = obj;
  dragged.class = obj.className;
  dragged.index = [...obj.parentNode.children].indexOf(obj);
})

 

<js>

 

게임 시작을 구현하는 함수와

마우스 이벤트를 구현한 함수에

play(); 함수를 호출한다.

 

 

퍼즐 클릭 시 마우스 효과음 구현