2D template

with orbitControls, XZgrid, info

by joe chan

HTML

<div id="info">Hw02 2D
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r70/three.min.js"></script>
<script src="https://jyunming-chen.github.io/tutsplus/js/KeyboardState.js"></script>

CSS

#info {
  position: absolute;
  top: 0px;
  width: 100%;
  padding: 10px;
  text-align: center;
  color: #ffff00
}

body {
  overflow: hidden;
}

JavaScript

var camera, scene, renderer;
var satellite, angle = 0;
var mousePoint;
var mouse = new THREE.Vector2();
var pos, vel, force;
var clock = new THREE.Clock();
//var ball;
var dir= Math.PI ;
 
var keyboard = new KeyboardState();
var stArray = [];
var baseS = 0;
var ballR = 5;
var counter = 0;

init();
animate();

function setUpStArray() {
  for (var i = 0; i < 3; i++) {
    var row = [];
    for (var j = 0; j < 5; j++)
      row.push(new THREE.Vector2(j * 0.25, 1 - 0.5 * i));
    stArray.push(row);
  }
}

function height(x) {
  if (x > 20 && x < 100)
    return 25
  else
    return 0
}

function init() {

  renderer = new THREE.WebGLRenderer({
    antialias: true
  });
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0x888888);
  document.body.appendChild(renderer.domElement);
  
  /////
  soundtrack = document.getElementById('soundtrack');
  ////

  pos = new THREE.Vector3(0, 40, 0);
  vel = new THREE.Vector3(0, 0, 0);

  scene = new THREE.Scene();
  camera = new THREE.OrthographicCamera(-50, 50, 80, -20, -10, 100);
  camera.position.z = 10;
  camera.position.x = 0;
  scene.add(camera);
  ///////////////////////////////////////////
  
  THREE.ImageUtils.crossOrigin = '';

  texture = THREE.ImageUtils.loadTexture('https://i.imgur.com/nMlJ4uv.jpg');
  texture.wrapS = THREE.RepeatWrapping;
  var texMat = new THREE.MeshBasicMaterial({
    map: texture
  });
  for (var i = 0; i < 5; i++) {
    var background = new THREE.Mesh(new THREE.PlaneGeometry(100, 100), texMat);
    background.position.y = 30;
    background.position.x = i * 100;
    scene.add(background);
  }
  ////////////////////////////////////////////////////////////////////////////////////////////


  setUpStArray();
  THREE.ImageUtils.crossOrigin = '';
  textureball = THREE.ImageUtils.loadTexture('https://i.imgur.com/skGgwyl.png');
  textureball.wrapS = THREE.RepeatWrapping;

  // setting up texMat
  var texMatball = new THREE.MeshBasicMaterial({
    map: textureball,
   ...