Delete bolts that are far away
This commit is contained in:
parent
cfe4cb3382
commit
3529916726
|
@ -6,6 +6,7 @@ export class Laser {
|
|||
constructor(ship) {
|
||||
const position = new THREE.Vector3();
|
||||
this.direction = ship.direction;
|
||||
this.kill = false;
|
||||
|
||||
ship.mesh.getWorldPosition(position)
|
||||
|
||||
|
@ -28,5 +29,9 @@ export class Laser {
|
|||
|
||||
update({ deltaTime }) {
|
||||
this.mesh.position.z += 0.5 * this.direction;
|
||||
|
||||
if (Math.abs(this.mesh.position.z > 475/2)) {
|
||||
this.kill = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -53,9 +53,10 @@ export class Ship {
|
|||
|
||||
if (!this.flyIn) {
|
||||
const xs = Math.sin(this.life * 0.5 + this.x);
|
||||
this.mesh.position.y = this.y + Math.sin(this.life + this.y) * 0.08;
|
||||
this.mesh.position.x = this.x + xs * 0.08;
|
||||
this.mesh.rotation.y = xs*0.25;
|
||||
const yrot = Math.sin(this.life + this.x + (3.14/2 * this.direction));
|
||||
this.mesh.position.y = this.y + Math.sin(this.life + this.y) * 0.2;
|
||||
this.mesh.position.x = this.x + xs * 0.15;
|
||||
this.mesh.rotation.x = yrot * 0.15;
|
||||
this.mesh.position.z += 0.01 * this.direction;
|
||||
this.nextShot -= deltaTime;
|
||||
if (this.nextShot <= 0) {
|
||||
|
@ -69,6 +70,9 @@ export class Ship {
|
|||
this.mesh.position.z += a * 2 * this.direction;
|
||||
this.mesh.scale.z = a * 4;
|
||||
this.firing = false;
|
||||
|
||||
this.mesh.rotation.y = 0;
|
||||
this.mesh.rotation.x = 0;
|
||||
}
|
||||
|
||||
if (Math.abs(this.mesh.position.z > 475/2)) {
|
||||
|
|
|
@ -82,9 +82,14 @@ export const scene = ({ ref }) => {
|
|||
|
||||
for (const bolt of bolts) {
|
||||
bolt.update({ deltaTime });
|
||||
|
||||
if (bolt.kill) {
|
||||
scene.remove(bolt.mesh);
|
||||
}
|
||||
}
|
||||
|
||||
ships = ships.filter((s) => !s.kill);
|
||||
bolts = bolts.filter((s) => !s.kill);
|
||||
|
||||
requestAnimationFrame(animate);
|
||||
renderer.render(scene, camera);
|
||||
|
|
Loading…
Reference in New Issue
Block a user