36 lines
1007 B
JavaScript
36 lines
1007 B
JavaScript
import * as THREE from 'three';
|
|
|
|
class GameEngine {
|
|
constructor() {
|
|
const width = window.innerWidth/2, height = window.innerHeight/2;
|
|
|
|
const camera = new THREE.PerspectiveCamera(70, width / height, 0.01, 10);
|
|
camera.position.z = 1;
|
|
|
|
const scene = new THREE.Scene();
|
|
|
|
const geometry = new THREE.BoxGeometry(0.2, 0.2, 0.2);
|
|
const material = new THREE.MeshNormalMaterial();
|
|
|
|
const mesh = new THREE.Mesh(geometry, material);
|
|
scene.add(mesh);
|
|
|
|
function animate(time) {
|
|
|
|
mesh.rotation.x = time / 2000;
|
|
mesh.rotation.y = time / 1000;
|
|
|
|
renderer.render(scene, camera);
|
|
|
|
}
|
|
|
|
const renderer = new THREE.WebGLRenderer({ antialias: true, alpha: true });
|
|
renderer.setSize(width, height);
|
|
renderer.setAnimationLoop(animate);
|
|
document.body.appendChild(renderer.domElement);
|
|
|
|
this.renderer = renderer;
|
|
}
|
|
}
|
|
|
|
export {GameEngine} |