Spaces:
Running
Running
Update game.js
Browse files
game.js
CHANGED
|
@@ -303,8 +303,34 @@ class TankPlayer {
|
|
| 303 |
this.startReload();
|
| 304 |
}
|
| 305 |
}
|
|
|
|
|
|
|
| 306 |
return bullet;
|
| 307 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 308 |
|
| 309 |
startReload() {
|
| 310 |
if (this.isReloading) return; // 이미 재장전 중이면 무시
|
|
|
|
| 303 |
this.startReload();
|
| 304 |
}
|
| 305 |
}
|
| 306 |
+
// 카메라 흔들림 효과 추가
|
| 307 |
+
this.applyCameraShake();
|
| 308 |
return bullet;
|
| 309 |
}
|
| 310 |
+
applyCameraShake() {
|
| 311 |
+
if (!window.gameInstance || !window.gameInstance.camera) return;
|
| 312 |
+
|
| 313 |
+
const camera = window.gameInstance.camera;
|
| 314 |
+
const originalPosition = camera.position.clone();
|
| 315 |
+
let shakeTime = 0;
|
| 316 |
+
const shakeIntensity = 0.2; // 발사 시 흔들림 강도
|
| 317 |
+
const shakeDuration = 300; // 흔들림 지속 시간 (ms)
|
| 318 |
+
|
| 319 |
+
const shakeCamera = () => {
|
| 320 |
+
if (shakeTime < shakeDuration) {
|
| 321 |
+
camera.position.x = originalPosition.x + (Math.random() - 0.5) * shakeIntensity;
|
| 322 |
+
camera.position.y = originalPosition.y + (Math.random() - 0.5) * shakeIntensity;
|
| 323 |
+
camera.position.z = originalPosition.z + (Math.random() - 0.5) * shakeIntensity;
|
| 324 |
+
|
| 325 |
+
shakeTime += 16; // 약 60fps 기준
|
| 326 |
+
requestAnimationFrame(shakeCamera);
|
| 327 |
+
} else {
|
| 328 |
+
camera.position.copy(originalPosition);
|
| 329 |
+
}
|
| 330 |
+
};
|
| 331 |
+
|
| 332 |
+
shakeCamera();
|
| 333 |
+
}
|
| 334 |
|
| 335 |
startReload() {
|
| 336 |
if (this.isReloading) return; // 이미 재장전 중이면 무시
|