Прошло много времени с тех пор, как я работал над этим проектом, но я только что вернулся к нему и оказывается, что он сломан. Я провел некоторое тестирование, и я смог определить проблему, но я понятия не имею, как ее исправить. Проблема заключается в том, что у восстановления < /p>
let lastShotTime = 0; // Tracks the last time a bullet was shot
const shootCooldown = 1000; // Cooldown time in milliseconds
if (testclick && gunn) {
const currentTime = Date.now();
// Check if enough time has passed since the last shot
if (currentTime - lastShotTime >= shootCooldown) {
// Create the bullet
let bullit = new THREE.Mesh(
new THREE.SphereGeometry(0.05, 8, 8),
new THREE.MeshBasicMaterial({ color: 0xffffff })
);
bullit.position.copy(swordPosi);
bullit.alive = true;
// Set bullet velocity and scale it for slower movement
bullit.velocity = new THREE.Vector3(0, 0, -1);
bullit.velocity.applyQuaternion(camera.quaternion);
bullit.velocity.multiplyScalar(0.2); // Slower speed
// Set a timer to mark the bullet as dead
setTimeout(function() {
bullit.alive = false;
scene.remove(bullit);
}, 1000);
// Add the bullet to the bullets array and scene
bulits.push(bullit);
scene.add(bullit);
Update the last shot time
lastShotTime = currentTime;
}
}
// Update bullet positions
for (let index = 0; index < bulits.length; index += 1) {
if (bulits[index] === undefined) continue;
if (bulits[index].alive == false) {
bulits.splice(index, 1);
continue;
}
bulits[index].position.add(bulits[index].velocity);
}
if (clock.elapsedTime - lastResetTime >= resetInterval) {
lastResetTime = clock.elapsedTime;
}
Прошло много времени с тех пор, как я работал над этим проектом, но я только что вернулся к нему и оказывается, что он сломан. Я провел некоторое тестирование, и я смог определить проблему, но я понятия не имею, как ее исправить. Проблема заключается в том, что у восстановления < /p>
[code] let lastShotTime = 0; // Tracks the last time a bullet was shot const shootCooldown = 1000; // Cooldown time in milliseconds
if (testclick && gunn) { const currentTime = Date.now();
// Check if enough time has passed since the last shot if (currentTime - lastShotTime >= shootCooldown) { // Create the bullet let bullit = new THREE.Mesh( new THREE.SphereGeometry(0.05, 8, 8), new THREE.MeshBasicMaterial({ color: 0xffffff }) );
// Set bullet velocity and scale it for slower movement bullit.velocity = new THREE.Vector3(0, 0, -1); bullit.velocity.applyQuaternion(camera.quaternion); bullit.velocity.multiplyScalar(0.2); // Slower speed
// Set a timer to mark the bullet as dead setTimeout(function() { bullit.alive = false; scene.remove(bullit); }, 1000);
// Add the bullet to the bullets array and scene bulits.push(bullit); scene.add(bullit);
Update the last shot time lastShotTime = currentTime; } } // Update bullet positions for (let index = 0; index < bulits.length; index += 1) { if (bulits[index] === undefined) continue; if (bulits[index].alive == false) { bulits.splice(index, 1); continue; }