Я новичок в html5 и three.js. Я немного экспериментировал с этим, и в основном то, что я хочу сделать, это иметь Mesh (я использую planeGeometry, так как учебник, который я использовал, использовал). В Mesh отображаются различные текстуры, которые могут впоследствии измениться.
Вот как выглядит мой код:
angelTexture = THREE.ImageUtils.loadTexture("images/textures/chars/angel/angel.png");
angelTexture.offset.x = -0.75;
angelTexture.offset.y = -0.75;
angelMesh = new THREE.Mesh( new THREE.PlaneGeometry(79, 53, 79, 53), new THREE.MeshBasicMaterial( { map: angelTexture, wireframe: false } ));
angelMesh.position.x = 0;
angelMesh.position.y = 0;
scene.add(angelMesh);
Проблема в том, что всякий раз, когда я смещаюсь, Mesh кажется достаточно большим, чтобы показать все другие спрайты (я использую текстуру как 2D-спрайт, который я компенсировал, чтобы анимировать его). Результат довольно катастрофический, и я все еще выясняю, как контролировать, насколько велика Mesh, чтобы он показывал только один снимок Sprite. Все мои попытки, похоже, только изменяют размер сетки, а также лежащую в основе текстуры и все еще показывают все спрайты.
Может ли кто-нибудь указать мне в правильном направлении? Спасибо заранее.
...
Мой друг придумал решение... Я пропустил свойство повтора.
angelTexture = THREE.ImageUtils.loadTexture("images/textures/chars/angel/angel.png");
angelTexture.offset.x = -0.75;
angelTexture.offset.y = -0.75;
angelTexture.repeat.x = 0.25;
angelTexture.repeat.y = 0.25;
scene.add(angelMesh);
Надеюсь, это поможет другим, имеющим ту же проблему.