Javascript 鼠标-x和y从平面移动,但为什么?
我将有一个类似于threejs.org/examples/#webgl_interactive_voxelpainer的网格,然后当我点击一个点时,我可以做任何我想做的事情。我就是做不到:/ 我的助手Javascript 鼠标-x和y从平面移动,但为什么?,javascript,three.js,Javascript,Three.js,我将有一个类似于threejs.org/examples/#webgl_interactive_voxelpainer的网格,然后当我点击一个点时,我可以做任何我想做的事情。我就是做不到:/ 我的助手 var onmouseclick; var planex = 16000; var planey = 16000; var rasterx = 100; var rastery = 100; var waterGeometry; var planeMaterials; var watermat
var onmouseclick;
var planex = 16000;
var planey = 16000;
var rasterx = 100;
var rastery = 100;
var waterGeometry;
var planeMaterials;
var watermaterial;
var waterplane;
var mouse;
然后我的功能是为mapp构建平面
buildmapp = function () {
//waterunderground
waterGeometry = new THREE.PlaneGeometry(planex, planey, rasterx, rastery);
planeMaterials = [
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
new THREE.MeshLambertMaterial({
map: new THREE.TextureLoader().load('ocean.jpg'),
side: THREE.DoubleSide,
wireframe: false
}),
];
watermaterial = new THREE.MeshFaceMaterial(planeMaterials);
waterplane = new THREE.Mesh(waterGeometry, watermaterial);
waterplane.position.set(0, 0, 0);
waterplane.rotation.set(0, 0, 0);
scene.add(waterplane);
}
然后我的鼠标点击功能。这里的坐标应该来自鼠标平面.x或y。
只是我找不到任何关于如何做的指导/
//
onmouseclick = function () {
mouse = new THREE.Vector3();
window.document.addEventListener('click', function (e) {
mouse.x = ((e.clientX / window.innerWidth) * 2 - 1);
mouse.y = (e.clientY / window.innerHeight) * 2 - 1;
console.log(mouse.x, mouse.y, 'clicklockation', );
// mouse - x and y from the plane but why ?
});
}
有人能帮我或给我一个指导或方法来了解我需要看什么吗?我不明白你的问题。你有什么问题?您不知道如何在单击时获取MouseX和MouseY事件?您想知道单击了网格的哪个磁贴吗?请参见当前我仅计算屏幕上画布的坐标。但是当我点击地图上的坐标时,我想知道它们是什么。所以我可以把我的物体移到这些坐标上。我知道怎么把它移到那里。但我不知道如何在我点击的地图(水上飞机)上找到当前位置。@Rabbid76我想是的。今晚我会尝试一下,看看它是否有效。我会有一个这样的网格,然后当我点击一个点时,我可以做任何我想做的事情。我就是做不成。/我不明白你的问题。你有什么问题?您不知道如何在单击时获取MouseX和MouseY事件?您想知道单击了网格的哪个磁贴吗?请参见当前我仅计算屏幕上画布的坐标。但是当我点击地图上的坐标时,我想知道它们是什么。所以我可以把我的物体移到这些坐标上。我知道怎么把它移到那里。但我不知道如何在我点击的地图(水上飞机)上找到当前位置。@Rabbid76我想是的。今晚我会尝试一下,看看它是否有效。我会有一个这样的网格,然后当我点击一个点时,我可以做任何我想做的事情。我就是做不到:/
//gameprocess
update = function () {};
render = function () {
renderer.clear();
renderer.render(scene, camera);
};
GameLoop = function () {
render();
update();
steuerung_tastatur_camera();
onmouseclick();
requestAnimationFrame(GameLoop);
};
//first build all object
buildobj();