add a simple box in stats-world
This commit is contained in:
@@ -3,12 +3,11 @@
|
|||||||
import { createCamera } from "./components/camera.js";
|
import { createCamera } from "./components/camera.js";
|
||||||
import { createLights } from "./components/lights.js";
|
import { createLights } from "./components/lights.js";
|
||||||
import { createScene } from "./components/scene.js";
|
import { createScene } from "./components/scene.js";
|
||||||
import { createRenderer } from "./systems/renderer.js";
|
import { createCube, createTerrain } from "./components/objects/terrain.js";
|
||||||
import { Loop } from "./systems/Loop.js";
|
import { Loop } from "./systems/Loop.js";
|
||||||
import { Resizer } from "./systems/Resizer.js";
|
import { Resizer } from "./systems/Resizer.js";
|
||||||
import { createControls } from "./systems/controls.js";
|
import { createControls } from "./systems/controls.js";
|
||||||
|
import { createRenderer } from "./systems/renderer.js";
|
||||||
import createTerrain from "./components/objects/terrain.js";
|
|
||||||
|
|
||||||
// These variables are module-scoped: we cannot access them
|
// These variables are module-scoped: we cannot access them
|
||||||
// from outside the module
|
// from outside the module
|
||||||
@@ -61,6 +60,10 @@ class World {
|
|||||||
|
|
||||||
scene.add(light, terrain);
|
scene.add(light, terrain);
|
||||||
|
|
||||||
|
const cube = createCube();
|
||||||
|
loop.updatables.push(cube);
|
||||||
|
scene.add(cube);
|
||||||
|
|
||||||
// Responsive handler
|
// Responsive handler
|
||||||
const resizer = new Resizer(container, camera, renderer);
|
const resizer = new Resizer(container, camera, renderer);
|
||||||
resizer.onResize = () => {
|
resizer.onResize = () => {
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
import {
|
import {
|
||||||
|
BoxGeometry,
|
||||||
PlaneGeometry,
|
PlaneGeometry,
|
||||||
MeshStandardMaterial,
|
MeshLambertMaterial,
|
||||||
Mesh,
|
Mesh,
|
||||||
TextureLoader,
|
TextureLoader,
|
||||||
} from "three";
|
} from "three";
|
||||||
|
|
||||||
export default function createTerrain(props) {
|
export function createTerrain(props) {
|
||||||
const loader = new TextureLoader();
|
const loader = new TextureLoader();
|
||||||
const height = loader.load("img/textures/height.png");
|
const height = loader.load("img/textures/height.png");
|
||||||
// w h
|
// w h
|
||||||
const geometry = new PlaneGeometry(150, 150, 64, 64);
|
const geometry = new PlaneGeometry(150, 150, 64, 64);
|
||||||
|
|
||||||
const material = new MeshStandardMaterial({
|
const material = new MeshLambertMaterial({
|
||||||
color: props.color,
|
color: props.color,
|
||||||
flatShading: true,
|
flatShading: true,
|
||||||
displacementMap: height,
|
displacementMap: height,
|
||||||
@@ -39,3 +40,13 @@ export default function createTerrain(props) {
|
|||||||
|
|
||||||
return plane;
|
return plane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createCube() {
|
||||||
|
const geometry = new BoxGeometry(1, 1, 1);
|
||||||
|
const material = new MeshLambertMaterial({ color: 0xff0000 });
|
||||||
|
const cube = new Mesh(geometry, material);
|
||||||
|
cube.position.set(0, 5, 0);
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
||||||
|
cube.tick = () => {};
|
||||||
|
return cube;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user