hw8

by Leoooo

HTML

<div id="info">Press W,S to control 前进后退  A,D control 旋转 H,l control 炮台
  <br>
  <button id="fire" style="width:20%">Fire</button>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/84/three.min.js"></script>
<script src="https://threejs.org/examples/js/controls/OrbitControls.js">
</script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://jyunming-chen.github.io/tutsplus/js/KeyboardState.js">
<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: #ffffff
}

body {
  overflow: hidden;
}

JavaScript

var camera, scene, renderer, controls;
var keyboard = new KeyboardState();
var base, turret, turn;
var tip;
var clock;
var ball, pos, vel, force, m = 1, isHit = false
var new1;
init();
animate();
window.addEventListener('resize', onWindowResize, false);

$("#fire").click(function() {
scene.add(ball);
	isHit = false
  pos = tip.localToWorld (new THREE.Vector3(10,0,0))
  vel =tip.localToWorld (new THREE.Vector3(10,0,0)).sub(wand.localToWorld (new THREE.Vector3(0,0,0))).setLength ( 20 )
});

function init() {
  scene = new THREE.Scene();
clock = new THREE.Clock()
  camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 1000);
  camera.position.z = 150;
  scene.add(camera);

  light = new THREE.PointLight(0xffffff);
  light.position.set(100, 300, 200);
  scene.add(light);

  var gridXZ = new THREE.GridHelper(200, 20, 'red', 'white');
  scene.add(gridXZ);

  renderer = new THREE.WebGLRenderer();
  renderer.setSize(window.innerWidth, window.innerHeight);
  renderer.setClearColor(0x444444);

  controls = new THREE.OrbitControls(camera, renderer.domElement);

  document.body.appendChild(renderer.domElement);

  ////////////////////////////////////////////////////////////////////////
	base = buildbase()
	scene.add ( base )
    base.position.set(0,5,0)
  turret = buildturret ('yellow')
  base.add (turret)
  turret.position.x = 10
  turret.position.y=9
   
  turn = buildEnd();
  turret.add (turn)
  turn.position.x = 10

	tip = buildcanno('white');
  turret.add (tip)
  tip.position.x = 10
  ball = new THREE.Mesh(new THREE.SphereGeometry (1.5,20,20), new THREE.MeshNormalMaterial());
	force = new THREE.Vector3 (0, -9.8, 0).multiplyScalar (m);
   pos = tip.localToWorld (new THREE.Vector3(10,0,0))
  vel =tip.localToWorld (new THREE.Vector3(10,0,0)).sub(wand.localToWorld (new THREE.Vector3(0,0,0))).setLength ( 20 )
  window.addEventListener('resize', onWindowResize, false);
  
}

function buildEnd() {
	wand = new THREE.Object3D()
  
  let wandMesh =...