GAME ALBERTA

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » GAME ALBERTA » Тестовый форум » Игра


Игра

Сообщений 1 страница 2 из 2

1

<!DOCTYPE html>
<html>
<head>
  <style> body { margin: 0; overflow: hidden; } </style>
</head>
<body>
  <script type="importmap">
  {
    "imports": {
      "three": "https://unpkg.com/three@0.160.0/build/three.module.js"
    }
  }
  </script>
  <script type="module">
    import * as THREE from 'three';
    // Сцена, камера, рендер
    const scene = new THREE.Scene();
    const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
    const renderer = new THREE.WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
    document.body.appendChild(renderer.domElement);

    // Игровой куб
    const geometry = new THREE.BoxGeometry(1, 1, 1);
    const material = new THREE.MeshStandardMaterial({ color: 0x00ff00 });
    const cube = new THREE.Mesh(geometry, material);
    scene.add(cube);

    // Свет и пол
    scene.add(new THREE.AmbientLight(0x404060));
    const light = new THREE.DirectionalLight(0xffffff, 1);
    light.position.set(5, 10, 7);
    scene.add(light);

    // Управление WASD
    const keys = { w: false, a: false, s: false, d: false };
    document.addEventListener('keydown', e => { if(e.key in keys) keys[e.key] = true; });
    document.addEventListener('keyup', e => { if(e.key in keys) keys[e.key] = false; });

    // Игровой цикл
    function animate() {
      requestAnimationFrame(animate);
      // Движение
      const speed = 0.05;
      if(keys.w) cube.position.z -= speed;
      if(keys.s) cube.position.z += speed;
      if(keys.a) cube.position.x -= speed;
      if(keys.d) cube.position.x += speed;
      // Вращение
      cube.rotation.x += 0.01;
      cube.rotation.y += 0.01;
      renderer.render(scene, camera);
    }
    animate();

    // Адаптация под окно
    window.addEventListener('resize', () => {
      camera.aspect = window.innerWidth / window.innerHeight;
      camera.updateProjectionMatrix();
      renderer.setSize(window.innerWidth, window.innerHeight);
    });
  </script>
</body>
</html>

0

2

пр

0


Вы здесь » GAME ALBERTA » Тестовый форум » Игра