THREE.js案例源码学习-geometry_birds

来源:互联网 发布:轩辕剑 还原数据库 编辑:程序博客网 时间:2024/06/05 22:33
Bird.js:
var Bird = function () {//保存当前的thisvar scope = this;//继承THREE.GeometryTHREE.Geometry.call( this );v(   5,   0,   0 );v( - 5, - 2,   1 );v( - 5,   0,   0 );v( - 5, - 2, - 1 );v(   0,   2, - 6 );v(   0,   2,   6 );v(   2,   0,   0 );v( - 3,   0,   0 );f3( 0, 2, 1 );f3( 0, 3, 2 );f3( 4, 7, 6 );f3( 5, 6, 7 );//计算法向量this.computeFaceNormals();var test=new THREE.BoxGeometry();function v( x, y, z ) {scope.vertices.push( new THREE.Vector3( x, y, z ) );}function f3( a, b, c ) {scope.faces.push( new THREE.Face3( a, b, c ) );}}//将THREE.Geometry的方法赋给BirdBird.prototype = Object.create( THREE.Geometry.prototype );//实现了Bird类对自身原型继承。//案例:Bird.prototype = new Animal(); Bird.prototype.constructor = Bird;”// Bird.prototype = new Animal();”意思是Bird.prototype原型作为Animal类的实例// 那么Bird原型对象中包含了一个指向Animal原型对象的指针;“Bird.prototype.constructor = Bird;”// 意思是因为“Bird.prototype = new Animal();”时,Bird.prototype.constructor指向了Animal原型对象,将其纠正重新指向Bird。// 代码运行后你会发现pig.fly()会报错,此fly()行为undefined,那是因为Animal原型中没有fly行为。到此我们就实现了Bird类对Animal类的原型继承。-此案例来源于网络Bird.prototype.constructor = Bird;
未写完。。。


原创粉丝点击