Да, есть такое, описался) Но все равно корабль не плывет в нужную сторону! И не как не пойму почему. Ну я все сделал вроде правильно...
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 20000000);
var light = new THREE.PointLight( 0xffffff, 1, 2000 );
light.position.set(0,0,0);scene.add( light );
var x = 0, y = 0, z = -500, speed = 0.2, angle0 = 0, angle1 = 0, angle2 = 0;
var geometry = new THREE.CylinderGeometry( 4, 15 , 100, 6 );
var material = new THREE.MeshLambertMaterial( {color: 0xffffff} );
var cylinder = new THREE.Mesh( geometry, material );
scene.add( cylinder );
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
renderer.shadowMapEnabled = true;
renderer.setClearColorHex( 0x00000, 1 );
var render = function () {
requestAnimationFrame(render);
renderer.render(scene, camera);
switch (key){
case 38: angle0+=0.05; break;
case 40: angle0-=0.05; break;
case 37: angle1+=0.05; break;
case 39: angle1-=0.05; break;
case 90: angle2-=0.05; break;
case 88: angle2+=0.05; break;
}
light.position.set(camera.position.x,camera.position.y+3,camera.position.z-3);
т.е. надо делать так? Но результат не лучше...
cylinder.rotation.z=angle2;
cylinder.rotation.y=angle1;
cylinder.rotation.x=angle0;
cylinder.position.set( x+=Math.sin(angle0)*speed*2, y+=Math.cos(angle0)*speed, z+=Math.cos(angle2)*speed );
удивительно... Но я также вот уже несколько недель работаю над генерируемым аналогом EVE или Star Conflict. Единственно, что я хочу в корни изменить - это система боя. Так сказать хочу вернуть стары и добрые традиции Quake3 или Unreal Tournament.