2
私の最初の質問StackOverflow!Three.jsをクリックして3DObjectのサイズを変更する方法は、scale.set以外のサイズ変更の方法がありますか?
私は、javascript対話型ゲームを作成しています。イベントが発生するたびに、マンゴーを大きく/小さく/異なる色にすることをお勧めします。私はテストしていますし、マンゴーにイベントリスナーを置いて、それはサイズ変更しますが、コールバックでscale.setを使用するだけです。これを行う別の方法がありますか?私はそれが一定の、しかし未定のサイズまでサイズが増え続けることを望んでいます。私はちょうど同じことに加えて私のリンターは私に叫んだ結果のパーセンテージを使用してみました。ここに私の関連するコードは次のとおりです。あなたが批判や親切にコメントしたいと思います私のコードで何かを見れば
const Mango = function() {
this.mesh = new THREE.Object3D();
const geom = new THREE.BoxGeometry(8, 16, 5, 8, 8, 8);
// making the box round
for (let i = 0; i< geom.vertices.length; i++) {
geom.vertices[i].normalize().multiplyScalar(16);
}
for (let i = 0; i < geom.faces.length; i ++) {
let face = geom.faces[i];
face.vertexNormals[0].copy(geom.vertices[face.a]).normalize();
face.vertexNormals[1].copy(geom.vertices[face.b]).normalize();
face.vertexNormals[2].copy(geom.vertices[face.c]).normalize();
}
// making it oblong
geom.applyMatrix(new THREE.Matrix4().makeScale(1.0, 1.3, 0.6));
// adding mango skin
const loader = new THREE.TextureLoader();
const mangoMap = loader.load("images/mangoMap.jpg");
const mat = new THREE.MeshPhongMaterial({
color: 0xffd507,
shininess: 40,
map: mangoMap,
});
const mango = new THREE.Mesh(geom, mat);
// adding eventlistener
const domEvents = new THREEx.DomEvents(camera, renderer.domElement);
domEvents.addEventListener(mango, 'click', function increaseMangoSize(e) {
mango.scale.set(1.2, 1.2, 1.2);
});
this.mesh.add(mango);
};
また、私に知らせてください!私は今日Three.jsと仕事を始めたばかりで、たくさんのことを学びます。
他のコメント/提案がある場合はお知らせください。 –