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) {
|