Предмет: Информатика, автор: prostovlad12

Чи можна написати ігровий движок на node js
Хто це вже робив розкажіть з чого треба починати​

Ответы

Автор ответа: KireikoSasha
1

Ответ:

Да

Объяснение:

Начинать нужно с нахождения библиотеки отрисовки базовой графики

Мы будем использовать Three.js

npm install three

И библиотека для локального сервера

npm install express

Давай напишем 3D графику

app.js:

const express = require('express');

const http = require('http');

const path = require('path');

const { Scene, PerspectiveCamera, WebGLRenderer, Raycaster, Vector2, Vector3, BoxGeometry, MeshBasicMaterial, Mesh } = require('three');

const app = express();

const server = http.createServer(app);

const io = require('socket.io')(server);

app.use(express.static(path.join(__dirname, 'public')));

const scene = new Scene();

const camera = new PerspectiveCamera(75, 800 / 600, 0.1, 1000);

const renderer = new WebGLRenderer();

const raycaster = new Raycaster();

const mouse = new Vector2();

camera.position.z = 5;

const geometry = new BoxGeometry();

const material = new MeshBasicMaterial({ color: 0x00ff00 });

const cube = new Mesh(geometry, material);

scene.add(cube);

io.on('connection', (socket) => {

 console.log('a user connected');

 socket.on('mousemove', (data) => {

   mouse.x = (data.x / 800) * 2 - 1;

   mouse.y = -(data.y / 600) * 2 + 1;

   raycaster.setFromCamera(mouse, camera);

   const intersects = raycaster.intersectObjects(scene.children);

   if (intersects.length > 0) {

     intersects[0].object.material.color.set(0xff0000);

   }

 });

});

app.get('/', (req, res) => {

 res.sendFile(path.join(__dirname, 'index.html'));

});

server.listen(3000, () => {

 console.log('Server is running on port 3000');

});

Использованная технология отрисовки: RayCast

Запуск сервера: node app.js

Откройте браузер и перейдите по адресу http://localhost:3000. При движении мыши над кубом в вашем браузере, его цвет должен измениться на красный. Это простой пример 3D-рейкастинга с использованием Three.js и Node.js.


prostovlad12: Спасибки
Похожие вопросы
Предмет: Математика, автор: zaraakhmedzhanova
Предмет: Қазақ тiлi, автор: Аноним