import { Scene, GridHelper,AxesHelper } from 'three';
|
import Stats from "three/examples/jsm/libs/stats.module";
|
|
import World from "./world/world";
|
import Camera from "./camera";
|
import Renderer from "./renderer";
|
import CSSRenderer from './cssRenderer';
|
|
// 工具类
|
import Sizes from "./utils/sizes";
|
import Time from "./utils/time";
|
|
export default class Experience {
|
constructor(canvas) {
|
this.canvas = canvas;
|
this.container = canvas.parentElement;
|
this.sizes = new Sizes(this.canvas);
|
this.time = new Time();
|
this.scene = new Scene();
|
this.camera = new Camera(this);
|
this.renderer = new Renderer(this);
|
this.cssRenderer = new CSSRenderer(this);
|
this.world = new World(this);
|
|
// const size = 100;
|
// const divisions = 100;
|
|
// const gridHelper = new GridHelper(size, divisions);
|
// this.scene.add(gridHelper);
|
|
this.stats = new Stats();
|
document.querySelector('.map-container').appendChild(this.stats.dom);
|
|
|
|
// 帧
|
this.time.on('tick', () => {
|
this.update();
|
});
|
}
|
|
update() {
|
this.camera.update();
|
this.world.update();
|
this.renderer.update();
|
this.cssRenderer.update();
|
this.stats.update();
|
}
|
}
|