Spaces:
Running
Running
Update game.js
Browse files
game.js
CHANGED
@@ -106,13 +106,21 @@ class TankPlayer {
|
|
106 |
update(mouseX, mouseY, scene) {
|
107 |
if (!this.body || !this.turretGroup) return;
|
108 |
|
109 |
-
// λ§μ°μ€ μ΄λμ λ°λ₯Έ ν¬ν νμ
|
110 |
-
|
111 |
-
|
112 |
-
if (
|
|
|
|
|
|
|
113 |
|
114 |
-
|
115 |
-
|
|
|
|
|
|
|
|
|
|
|
116 |
|
117 |
// νλ μ΄μ΄ μ΄μ μ
λ°μ΄νΈ
|
118 |
for (let i = this.bullets.length - 1; i >= 0; i--) {
|
@@ -547,8 +555,9 @@ async addDesertDecorations() {
|
|
547 |
const cameraDistance = 30;
|
548 |
const cameraHeight = 15;
|
549 |
|
550 |
-
//
|
551 |
-
const
|
|
|
552 |
|
553 |
const cameraX = tankPos.x + Math.sin(cameraAngle) * cameraDistance;
|
554 |
const cameraZ = tankPos.z + Math.cos(cameraAngle) * cameraDistance;
|
@@ -561,11 +570,12 @@ async addDesertDecorations() {
|
|
561 |
);
|
562 |
|
563 |
// μΉ΄λ©λΌκ° ν±ν¬λ₯Ό λ°λΌλ³΄λλ‘ μ€μ
|
564 |
-
|
565 |
tankPos.x,
|
566 |
tankPos.y + 2,
|
567 |
tankPos.z
|
568 |
-
)
|
|
|
569 |
}
|
570 |
//this.camera.lookAt(lookAtPoint);
|
571 |
|
|
|
106 |
update(mouseX, mouseY, scene) {
|
107 |
if (!this.body || !this.turretGroup) return;
|
108 |
|
109 |
+
// λ§μ°μ€ μ΄λμ λ°λ₯Έ ν¬ν νμ
|
110 |
+
// 차체μ νμ μ κ³ λ €νμ¬ μλμ μΈ ν¬ν νμ κ³μ°
|
111 |
+
let targetAngle = Math.atan2(mouseX, mouseY);
|
112 |
+
if (targetAngle < 0) targetAngle += Math.PI * 2;
|
113 |
+
|
114 |
+
// 차체μ νμ¬ νμ κ°μ κ³ λ €νμ¬ ν¬νμ μλ νμ κ³μ°
|
115 |
+
let relativeAngle = targetAngle - this.body.rotation.y;
|
116 |
|
117 |
+
// κ°λλ₯Ό -Ομμ Ο μ¬μ΄λ‘ μ κ·ν
|
118 |
+
while (relativeAngle > Math.PI) relativeAngle -= Math.PI * 2;
|
119 |
+
while (relativeAngle < -Math.PI) relativeAngle += Math.PI * 2;
|
120 |
+
|
121 |
+
// ν¬ν νμ μ ν μμ (360λ νμ κ°λ₯)
|
122 |
+
this.turretGroup.rotation.y = relativeAngle;
|
123 |
+
this.turretRotation = targetAngle; // μ 체 νμ κ° μ μ₯
|
124 |
|
125 |
// νλ μ΄μ΄ μ΄μ μ
λ°μ΄νΈ
|
126 |
for (let i = this.bullets.length - 1; i >= 0; i--) {
|
|
|
555 |
const cameraDistance = 30;
|
556 |
const cameraHeight = 15;
|
557 |
|
558 |
+
// ν¬ν μ 체 νμ κ° μ¬μ© (차체 νμ + ν¬ν μλ νμ )
|
559 |
+
const totalRotation = this.tank.body.rotation.y + this.tank.turretGroup.rotation.y;
|
560 |
+
const cameraAngle = totalRotation + Math.PI;
|
561 |
|
562 |
const cameraX = tankPos.x + Math.sin(cameraAngle) * cameraDistance;
|
563 |
const cameraZ = tankPos.z + Math.cos(cameraAngle) * cameraDistance;
|
|
|
570 |
);
|
571 |
|
572 |
// μΉ΄λ©λΌκ° ν±ν¬λ₯Ό λ°λΌλ³΄λλ‘ μ€μ
|
573 |
+
const lookAtPoint = new THREE.Vector3(
|
574 |
tankPos.x,
|
575 |
tankPos.y + 2,
|
576 |
tankPos.z
|
577 |
+
);
|
578 |
+
this.camera.lookAt(lookAtPoint);
|
579 |
}
|
580 |
//this.camera.lookAt(lookAtPoint);
|
581 |
|