How to repeat the same object?

It would need to loop 12 ramparts, with the y position increasing by 8 every-time.

Any help would be much appreciated.

           var rampart6 = createMesh(new THREE.CubeGeometry(2, 4, 6),"stone.jpg");
            rampart6.castShadow = true;
            
            function createMesh(geom, imageFile) {
            var material = new THREE.MeshPhongMaterial();
            var texture =
              new THREE.TextureLoader().load("img/" + imageFile);
            material.map = texture;
            var mesh = new THREE.Mesh(geom, material);
            return mesh;
            }

            // position the rampart 6
            rampart6.position.x = 17.5;
            rampart6.position.y = 26;
            rampart6.position.z = 69;
            
            // add the rampart 6 to the scene
            scene.add(rampart6);
function createMesh( geom, imageFile ) {
    var texture = new THREE.TextureLoader().load( "img/" + imageFile );
    var material = new THREE.MeshPhongMaterial( { map: texture } );
    var mesh = new THREE.Mesh( geom, material );
    return mesh;
}

var initialYpos = 26;
var geometry = new THREE.CubeGeometry( 2, 4, 6 );

for ( var i = 0; i < 12; i++ ) { 
    var rampart = createMesh( geometry, "stone.jpg" );
    rampart.castShadow = true;

    rampart.position.x = 17.5;
    rampart.position.y = initialYpos + ( i * 12 );
    rampart.position.z = 69;
            
    scene.add( rampart );
}

https://www.w3schools.com/js/js_loop_for.asp

3 Likes

thanks it worked appreciate the help

1 Like