0

hii私は画面にレンダリングするためにsphreeを取得しようとしています。これが私のjsファイルです。

function Earth()
{
    this.getEarth = init();

function init()
{
    var map = {map:THREE.ImageUtils.loadTexture("images/earth_surface_2048.jpg")};
    var material = new THREE.MeshBasicMaterial(map);
    var geometry = new THREE.SphereGeometry(1,32,32);
    return new THREE.Mesh(geometry, material);
}

function update()
{
    getEarth.rotation.x += .01;
}
}

これがhtmlファイルにあるスクリプトです。threejsがページに含まれています。

    <script>

    var renderer = null;
    var scene = null;
    var camera = null;
    var mesh = null;
    var earth = null;

    $(document).ready(
            function() {
                var container = document.getElementById("container");
                renderer = new THREE.WebGLRenderer({ antialias: true } );
                renderer.setSize(container.offsetWidth,container.offsetHeight);
                container.appendChild(renderer.domElement)
                scene = new THREE.Scene();
                camera = new THREE.PerspectiveCamera( 45,
                        container.offsetWidth / container.offsetHeight, 1, 4000 );

                earth = new Earth();
                scene.add(camera);
                scene.add(earth.getEarth);
                renderer.render( scene, camera );
            }
    );


</script>

デバッガーからエラーが発生しないので、何かアイデアはありますか?

4

1 に答える 1

1

earth.getEarthはおそらくnullまたは関数です。未定義の値など、取ることができないものを黙って無視するscene.add()を覚えています。

クラススコープ外のコードが地球オブジェクト内のその変数を参照するように変更var getEarth = init();するのはどうですか。this.getEarth = init();ただし、オブジェクトを含む変数にメソッドのような名前を使用することはお勧めしません。

于 2013-02-15T12:49:52.683 に答える