Spaces:
Running
Running
Update game.js
Browse files
game.js
CHANGED
@@ -1689,61 +1689,95 @@ class Game {
|
|
1689 |
}
|
1690 |
|
1691 |
setupEventListeners() {
|
1692 |
-
|
1693 |
-
|
1694 |
-
|
1695 |
-
|
1696 |
-
|
1697 |
-
|
1698 |
-
|
1699 |
-
|
1700 |
-
|
1701 |
-
|
1702 |
-
|
1703 |
-
|
1704 |
-
|
1705 |
-
|
1706 |
-
|
1707 |
-
|
1708 |
-
|
1709 |
-
|
1710 |
-
|
1711 |
-
|
1712 |
-
|
1713 |
-
|
1714 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1715 |
|
1716 |
-
|
1717 |
-
|
1718 |
-
|
1719 |
-
|
1720 |
-
|
1721 |
-
|
1722 |
-
|
1723 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1724 |
|
1725 |
-
|
1726 |
-
document.
|
1727 |
-
|
1728 |
-
|
1729 |
-
|
1730 |
-
|
1731 |
-
|
1732 |
-
|
1733 |
-
});
|
1734 |
|
1735 |
-
|
1736 |
-
|
1737 |
-
|
1738 |
-
|
1739 |
-
|
1740 |
|
1741 |
-
|
1742 |
-
|
1743 |
-
|
1744 |
-
|
1745 |
-
|
1746 |
-
|
1747 |
|
1748 |
startGame() {
|
1749 |
if (!this.isLoaded) {
|
|
|
1689 |
}
|
1690 |
|
1691 |
setupEventListeners() {
|
1692 |
+
// 키보드 이벤트 - gameStarted 체크를 수정
|
1693 |
+
document.addEventListener('keydown', (event) => {
|
1694 |
+
if (this.isGameOver) return;
|
1695 |
+
|
1696 |
+
// gameStarted 체크를 제거하거나, isStarted로 변경
|
1697 |
+
if (!this.isStarted) return;
|
1698 |
+
|
1699 |
+
switch(event.code) {
|
1700 |
+
case 'KeyW':
|
1701 |
+
this.keys.w = true;
|
1702 |
+
event.preventDefault();
|
1703 |
+
console.log('W key pressed, throttle increasing');
|
1704 |
+
break;
|
1705 |
+
case 'KeyA':
|
1706 |
+
this.keys.a = true;
|
1707 |
+
event.preventDefault();
|
1708 |
+
console.log('A key pressed, turning left');
|
1709 |
+
break;
|
1710 |
+
case 'KeyS':
|
1711 |
+
this.keys.s = true;
|
1712 |
+
event.preventDefault();
|
1713 |
+
console.log('S key pressed, throttle decreasing');
|
1714 |
+
break;
|
1715 |
+
case 'KeyD':
|
1716 |
+
this.keys.d = true;
|
1717 |
+
event.preventDefault();
|
1718 |
+
console.log('D key pressed, turning right');
|
1719 |
+
break;
|
1720 |
+
case 'KeyF':
|
1721 |
+
this.keys.f = true;
|
1722 |
+
event.preventDefault();
|
1723 |
+
break;
|
1724 |
+
}
|
1725 |
+
});
|
1726 |
|
1727 |
+
document.addEventListener('keyup', (event) => {
|
1728 |
+
if (this.isGameOver) return;
|
1729 |
+
|
1730 |
+
// gameStarted 체크를 제거하거나, isStarted로 변경
|
1731 |
+
if (!this.isStarted) return;
|
1732 |
+
|
1733 |
+
switch(event.code) {
|
1734 |
+
case 'KeyW':
|
1735 |
+
this.keys.w = false;
|
1736 |
+
break;
|
1737 |
+
case 'KeyA':
|
1738 |
+
this.keys.a = false;
|
1739 |
+
break;
|
1740 |
+
case 'KeyS':
|
1741 |
+
this.keys.s = false;
|
1742 |
+
break;
|
1743 |
+
case 'KeyD':
|
1744 |
+
this.keys.d = false;
|
1745 |
+
break;
|
1746 |
+
case 'KeyF':
|
1747 |
+
this.keys.f = false;
|
1748 |
+
break;
|
1749 |
+
}
|
1750 |
+
});
|
1751 |
+
document.addEventListener('mousemove', (event) => {
|
1752 |
+
if (!document.pointerLockElement || this.isGameOver || !this.isStarted) return;
|
1753 |
+
|
1754 |
+
const deltaX = event.movementX || 0;
|
1755 |
+
const deltaY = event.movementY || 0;
|
1756 |
+
|
1757 |
+
this.fighter.updateMouseInput(deltaX, deltaY);
|
1758 |
+
});
|
1759 |
|
1760 |
+
document.addEventListener('mousedown', (event) => {
|
1761 |
+
if (!document.pointerLockElement || this.isGameOver || !this.isStarted) return;
|
1762 |
+
|
1763 |
+
if (event.button === 0) {
|
1764 |
+
this.fighter.isMouseDown = true;
|
1765 |
+
this.lastShootTime = 0;
|
1766 |
+
}
|
1767 |
+
});
|
|
|
1768 |
|
1769 |
+
document.addEventListener('mouseup', (event) => {
|
1770 |
+
if (event.button === 0) {
|
1771 |
+
this.fighter.isMouseDown = false;
|
1772 |
+
}
|
1773 |
+
});
|
1774 |
|
1775 |
+
window.addEventListener('resize', () => {
|
1776 |
+
this.camera.aspect = window.innerWidth / window.innerHeight;
|
1777 |
+
this.camera.updateProjectionMatrix();
|
1778 |
+
this.renderer.setSize(window.innerWidth, window.innerHeight);
|
1779 |
+
});
|
1780 |
+
}
|
1781 |
|
1782 |
startGame() {
|
1783 |
if (!this.isLoaded) {
|