Запуск проблемы с Three.js. В настоящее время я пытаюсь перемещать частицы в системе частиц, когда каждый кадр визуализируется. Ошибок не сообщается, но ничто не движется! В примере, который я взял из кода в http://aerotwist.com/tutorials/creating-particles-with-three-js/, используется синтаксис particle.position.y
, но консоль JS возвращает Cannot set property 'y' of undefined
, когда я изменяю приведенный ниже код, чтобы отразить это. Любая помощь или указатели на то, где я ошибаюсь, очень ценится.Перемещение отдельных частиц в системе частиц Three.JS
Полный исходный код:
var scene, camera, renderer, particleCount = 0, particleSystem, particles;
init();
animate();
function init()
{
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
scene.add(camera);
camera.position.z = 5;
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
particleCount = 1800,
particles = new THREE.Geometry();
var pMaterial = new THREE.ParticleBasicMaterial({color: 0xFFFFFF, size: 0.5});
for (var i = 0; i < particleCount; i++)
{
var pX = Math.random() * 500 - 250,
pY = Math.random() * 500 - 250,
pZ = Math.random() * 500 - 250,
particle = new THREE.Vector3(pX, pY, pZ);
particles.vertices.push(particle);
}
particleSystem = new THREE.ParticleSystem(particles, pMaterial);
scene.add(particleSystem);
}
function animate()
{
requestAnimationFrame(animate);
renderer.render(scene, camera);
var pCount = particleCount;
while (pCount--)
{
var particle = particles.vertices[pCount];
particle.y = Math.random() * 500 - 250;
particleSystem.geometry.vertices.needsUpdate = true;
}
}
Вы упомянули в своем вопросе, что это 'particle.position.y', но в вашем коде вы пишете' particle.y', это опечатка? – lebolo
Спасибо за ответ - particle.position.y возвращает ошибку для меня; частица. Посмотрев на документацию, Vector3s, такие как «particle», похоже, имеют «y» в качестве одного из своих свойств. – user3549051
Избегайте устаревших книг и руководств и избегайте примеров из сети, ссылающихся на старые версии библиотеки. В примере, в котором вы учитесь, используется версия three.js, которой 3 года. – WestLangley