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 =...