0
我想創建一個three.js所塊當我按不同的鍵,將移動。我已經成功與創建功能eventListener
,使用console.log()
檢查,並且也得到了成功的移動我的塊,但是當我把兩者一起,塊不動。我已經使用成功的塊移動代碼和循環,所以我可以看到它移動命令也試過,塊具有__dirtyPosition
設置爲true,但即使如此,也不能移動它。當我告訴它時,爲什麼我的Three.js對象不會移動?
我是一個相當有經驗的程序員,並創造了這樣一個許多工作程序,但由於某些原因,它只是不工作,即使我已經將它比作我的工作程序並沒有什麼不同了。
var block1 = new Physijs.ConvexMesh(
new THREE.CubeGeometry(5, 5, 5),
new THREE.MeshBasicMaterial({color: 0x444444})
);
block1.position.set(0, 0, 0);
block1.__dirtyPosition = true;
scene.add(block1);
的eventListener
:
document.addEventListener("keydown", function(event) {
var code = event.keyCode;
//a, s, w, d respectively
if (code === 65) block1.translateX(-3);
if (code === 83) block1.translateY(-3);
if (code === 87) block1.translateY(3);
if (code === 68) block1.translateX(3);
});
和renderer
:
頂級代碼:
renderer.render(scene, camera);
:
var renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
代碼的底部
我錯過了什麼?
顯示它的代碼 – frozen
確保塊1對象是在你的事件監聽功能訪問。 – stweb
你有渲染循環嗎?你問場景渲染()? – Radio