在Three.js
中理解类系统时遇到问题我在player.js中有一个代码:
function Player() {
var mesh = new THREE.Object3D();
this.player = null;
this.loader = new THREE.JSONLoader();
this.name = 'player';
this.loader.load(
'obj/models/minecraft_sole.json',
function ( geometry, materials ) {
var material = new THREE.MultiMaterial( materials );
this.player = new THREE.Mesh( geometry, material );
this.player.position.set(0, 0, 0);
this.player.scale.set(.5,.5,.5);
this.player.castShadow = true;
this.player.receiveShadow = false;
mesh.add( this.player );
}
);
Player.prototype.constructor = Player;
Player.prototype = Object.create(THREE.Object3D.prototype);
}
Player.prototype.updatePosition = function(){
this.mesh.position.y += 0.05;
}
基本上我想要实现的目标:
在init()/ render()/ animate()的所有标准设置之后的main.js中... 我创建了一个名为johny的变量:
var johny = new Player();
现在一切都很好,但是在player.js我希望能够定义一些原型?方法,在那个方法中我想听一个点击事件。在调用该事件之后,我希望我的玩家网格动画到某个位置或开始旋转/缩放。
我的伪代码是为了更好地理解:
var Player = function(){
// define mesh and all
}
player.add.eventListener( 'click' ){
//code to animate player
}
记住这一切;我希望成为player.js的一部分,以便在调用之后:
var johny = new Player();
我不必将事件监听功能添加到main.js以及所有这些功能。 第二,我希望我的代码是模块化的,正如您可能已经注意到的那样:)
答案 0 :(得分:0)
所以我确实理解了它。