FullStack/11. JavaScript

자바스크립트로 자이로스코프 기능을 이용한 휴대폰 충돌 체크

nakanara 2024. 7. 10. 23:39
반응형

 

휴대폰 앱이 아닌 브라우저에서 범프와 유사한 기능이 필요하여 자바스크립트를 통한 충돌 체크하는 부분을 확인하였습니다.

모바일 기기에서 자이로스코프와 가속도계가 내장되어야만 체크가 가능합니다.

<!DOCTYPE html>
<html>
<head>
    <title>휴대폰 충돌 감지 예제</title>
</head>
<body>
    <h1>휴대폰 충돌 감지</h1>
    <p id="status">센서 데이터를 기다리는 중...</p>

    <script>
        if ('Accelerometer' in window) {
            // 가속도계 객체 생성
            let accelerometer = new Accelerometer({frequency: 60});

            accelerometer.addEventListener('reading', () => {
                let x = accelerometer.x;
                let y = accelerometer.y;
                let z = accelerometer.z;

                // 충돌 감지 로직
                if (Math.abs(x) > 15 || Math.abs(y) > 15 || Math.abs(z) > 15) {
                    document.getElementById('status').innerText = '충돌 감지됨!';
                    // 충돌 감지 시 수행할 작업 추가
                } else {
                    document.getElementById('status').innerText = `X: ${x.toFixed(2)}, Y: ${y.toFixed(2)}, Z: ${z.toFixed(2)}`;
                }
            });

            accelerometer.addEventListener('error', (event) => {
                document.getElementById('status').innerText = `가속도계 오류: ${event.error}`;
            });

            accelerometer.start();
        } else {
            document.getElementById('status').innerText = '가속도계를 지원하지 않는 기기입니다.';
        }
    </script>
</body>
</html>
반응형