add typeentity and some file for the future ennemies
This commit is contained in:
parent
a807d9de0d
commit
9b980000dd
4 changed files with 38 additions and 10 deletions
30
js/Env.js
30
js/Env.js
|
@ -1,6 +1,12 @@
|
||||||
import { Element } from "./Element.js";
|
import { Element } from "./Element.js";
|
||||||
import { Quality } from "./utils.js";
|
import { Quality } from "./utils.js";
|
||||||
|
|
||||||
|
export class TypeEntity {
|
||||||
|
static other = 0;
|
||||||
|
static player = 1;
|
||||||
|
static ennemy = 2;
|
||||||
|
}
|
||||||
|
|
||||||
export class Env {
|
export class Env {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.scene = new THREE.Scene();
|
this.scene = new THREE.Scene();
|
||||||
|
@ -79,21 +85,29 @@ export class Env {
|
||||||
/**
|
/**
|
||||||
* Add an element to the scene
|
* Add an element to the scene
|
||||||
* @param {Element} element Element
|
* @param {Element} element Element
|
||||||
|
* @param {TypeEntity} type Type of the element added
|
||||||
*/
|
*/
|
||||||
addToScene = (element) => {
|
addToScene = (element, type) => {
|
||||||
this.elements.push(element);
|
if (!type) {
|
||||||
|
type = TypeEntity.other;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.elements.push([element, type]);
|
||||||
this.scene.add(element.data);
|
this.scene.add(element.data);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Animate all the elements in the environnement
|
* Animate all the players in the environnement
|
||||||
*/
|
*/
|
||||||
animate = () => {
|
animate = () => {
|
||||||
this.elements.forEach((element) => {
|
this.elements
|
||||||
if (element.animation) {
|
.filter((entityData) => entityData[1] == TypeEntity.player)
|
||||||
element.animation();
|
.map((playerData) => playerData[0])
|
||||||
}
|
.forEach((player) => {
|
||||||
});
|
if (player.animation) {
|
||||||
|
player.animation();
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
7
js/Pique.js
Normal file
7
js/Pique.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import { Triangle } from "./Triangle.js";
|
||||||
|
|
||||||
|
export class Pique extends Triangle {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
7
js/Triangle.js
Normal file
7
js/Triangle.js
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
import { Element } from "./Element.js";
|
||||||
|
|
||||||
|
export class Triangle extends Element {
|
||||||
|
constructor() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
import { Env } from "./Env.js";
|
import { Env, TypeEntity } from "./Env.js";
|
||||||
import { Plane } from "./Plane.js";
|
import { Plane } from "./Plane.js";
|
||||||
import { Player } from "./Player.js";
|
import { Player } from "./Player.js";
|
||||||
import { Quality } from "./utils.js";
|
import { Quality } from "./utils.js";
|
||||||
|
@ -21,7 +21,7 @@ const main = () => {
|
||||||
|
|
||||||
// Player
|
// Player
|
||||||
const player = new Player(THREE.Color.NAMES.red);
|
const player = new Player(THREE.Color.NAMES.red);
|
||||||
env.addToScene(player);
|
env.addToScene(player, TypeEntity.player);
|
||||||
addEventListener("keypress", player.controlUser);
|
addEventListener("keypress", player.controlUser);
|
||||||
|
|
||||||
// GUI
|
// GUI
|
||||||
|
|
Reference in a new issue