0

正常に動作していたコードがありましたが、WebGL を有効にすると動作しなくなりました。一般に、frameRate ごとにオブジェクトのサイズを変更する関数がありました。

function animate(){

     window.requestAnimationFrame(animate);
     s.setPosition(s.x - 1, s.y - 1, 0);
}

s.prototype.setPosition = function(x, y, z) {

this.x = x; 
this.y = y; 
this.z = z; 

this.squareMesh.geometry.vertices[0].set( x,  y, z);
this.squareMesh.geometry.vertices[1].set( x + this.w - 1, y, z);
this.squareMesh.geometry.vertices[2].set( x + this.w - 1, y - this.h + 1, z);
this.squareMesh.geometry.vertices[3].set( x,  y -  this.h + 1, z);
 }

WebGlを有効にするまで、これはうまく機能していました。有効にすると、オブジェクトに何も起こらず、値が更新されないようです。

ビルドイン関数を使用すると

obj.position.x = s.x +1できます。

ただし、これにより、すべてのオブジェクトの 0 0 0 位置などの他の問題が発生します。ここでその問題を参照します:Three.js、WebGlオブジェクトの位置

4

1 に答える 1

0

https://github.com/mrdoob/three.js/wiki/Updatesを参照してください

これにより、頂点が変更され、更新が必要であることが Three.js に通知されます。

this.squareMesh.geometry.verticesNeedUpdate = true;

于 2013-07-05T00:18:31.763 に答える