JS, анимацию портала Доктора Стрэнджа нельзя расположить на внешней рамке круга за картами, если только карты перевернутJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Гость
 JS, анимацию портала Доктора Стрэнджа нельзя расположить на внешней рамке круга за картами, если только карты перевернут

Сообщение Гость »


Часть, содержащая ротацию карт и код портала:

//звуковой эффект $(документ).ready(функция() { var FlipSound = document.getElementById("flipSound"); $(".card").click(function() { вар карта = $(это); // Проверяем, не переворачивается ли карта, чтобы избежать нескольких переворотов if (!card.hasClass('переворачивание')) { card.addClass('переворачивание'); // Проверяем, обращена ли лицевая сторона к зрителю if (!card.hasClass("перевернутый")) { флипSound.currentTime = 0; // Сбрасываем звук в начало флипSound.play(); СтартАнимация(); console.log("начато") card.addClass("перевернутый"); } еще { стопАнимация(); console.log("остановлено") card.removeClass("перевернутый"); } setTimeout(функция() { card.removeClass('переворачивание'); }, 1000); // Настройте тайм-аут в соответствии с продолжительностью вашей анимации } }); // Предотвратить звук при щелчке сзади $(".card__back").click(function(e) { е.stopPropagation(); }); }); // Эффект пылесоса тела document.getElementById("gameCardLink").addEventListener("mouseover", function() { document.body.classList.add("hoverEffect"); }); document.getElementById("gameCardLink").addEventListener("mouseout", function() { document.body.classList.remove("hoverEffect"); }); // эффект портала вар p5Instance; функция startAnimation() { const эскиз = (p) => { const createParticleSystem = (местоположение) => { константное происхождение = location.copy(); константные частицы = []; const addParticle = скорость => { const rand = p.random(0, 1); если (ранд { частицы.forEach(частица => { частица.applyForce(сила); }); }; константный запуск = () => { частиц.forEach((частица, индекс) => { частица.переместить(); частица.рисовать(); если (particle.isDead()) { частицы.splice(индекс, 1); } }); }; возвращаться { источник, добавить частицу, бегать, ApplyForce }; }; const createSparkParticle = (locationP, скорость) => { константная частица = createParticle (locationP, скорость); пусть исчезают = 255; константная ничья = () => { p.colorMode(p.HSB); p.stroke(16, 62, 100, затухание); const стрелка = скорость.copy().normalize().mult(p.random(2, 4)); const направление = p5.Vector.add(particle.location, стрелка); p.line(particle.location.x, частица.location.y, направление.x, направление.y); }; const move = () => { частица.applyForce(p.createVector(p.random(-.2, .2), p.random(-0.1, -0.4))); частица.скорость.добавить(частица.acc); частица.location.add(particle.velocity.copy().normalize().mult(p.random(2, 4))); частица.acc.mult(0); затухание -= 5; }; возвращаться { ... частица, рисовать, двигаться } } const createParticle = (locationP, скорость) => { const acc = p.createVector(0, 0); константное местоположение = locationP.copy(); пусть исчезают = 255; const FadeMinus = p.randomGaussian(15, 2); пусть светлее = 100; пусть ситуация = 62; константная ничья = () => { p.colorMode(p.HSB) p.stroke(16, p.constrain(situate, 62, 92), p.constrain(lightther, 60, 100), исчезать); константная стрелка = скорость.copy().mult(2); const направление = p5.Vector.add(местоположение, стрелка); p.line(location.x, location.y, направление.x, направление.y); }; const move = () => { скорость.add(акк); location.add(velocity.copy().div(p.map(velocity.mag(), 18, 0, 5, 1))); акк.мульт(0); постепенное исчезновение - = постепенное исчезновениеМинус; светлее -= 8; положение += 8; }; const applyForce = сила => { Acc.add (сила); }; const isDead = () => { if (fade < 0 || location.x < 0 || location.x > p.width || location.y > p.height) { вернуть истину; } еще { вернуть ложь; } }; возвращаться { рисовать, двигаться, применитьсилу, мертв, скорость, расположение, соотв. }; }; const createMover = () => { const location = p.createVector(p.width/2, p.height/2); const скорость = p.createVector(0, 0); const acc = p.createVector(0, 0); константная масса = 10; пусть угол = 0; пусть angularVelocity = 0; пусть уголАкк = 0; пусть лен = 100; константная частицаSystems = [ createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение), createParticleSystem (местоположение) ]; const getGotoVector = угол => { const radius = p.map(angleVelocity, 0, 0,3, 0, 55); const goToVector = p.createVector( location.x + радиус * p.cos(угол), location.y + радиус * p.sin(угол) ); вернуть goToVector; }; константная ничья = () => { const goToVector = getGotoVector (угол); частицаSystems.forEach(particleSystem => { частицаSystem.run(); }); }; const renderParticleSystem = () => { частицаSystems.forEach(particleSystem => { const goToVector = getGotoVector(angle - p.random(0, p.TWO_PI)); const prepencular = p.createVector( (goToVector.y - location.y)*-1, (goToVector.x — location.x) ); препенкулярный.нормализовать(); prepencular.mult(angleVelocity * 70); частицаSystem.origin.set(goToVector); частицаSystem.addParticle(препенкулярная); const Gravity = p.createVector(0, 0,3); частицаSystem.applyForce(гравитация); }); }; const move = () => { уголАкк = 0,005; angularVelocity = p.constrain(angleVelocity + angularAcc, 0, 0,32); угол += уголСкорость; уголАкк = 0; рендерингСистемы Частиц(); }; возвращаться { рисовать, двигаться }; }; пусть движитель; p.setup = функция() { p.createCanvas(240, 320); п.очистить(); двигатель = createMover(); } p.draw = функция() { п.очистить(); двигатель.переместить(); двигатель.рисовать(); } }; p5Instance = новый p5(эскиз); } // останавливаем анимацию функция стопАнимация() { если (p5Instance) { p5Instance.remove(); p5Instance = ноль; } } Здравствуйте, друзья! У меня есть 6 карт, которые могут перевернуться. Когда одна из карт разворачивается, я хочу, чтобы анимация портала появлялась в самой дальней рамке цветных кругов на обратной стороне карт. Как я могу добиться этого в своем коде?
Что делать с каждой из 6 карточек

Изображение

[*]основной файл (включая анимацию портала):
https://drive.google.com/file/d/1famaPF ... sp=sharing
[*]Демо-ссылка приложения на портал (работает некорректно):
https://tm-game-cards-portal.netlify.app/
[*]Демо-ссылка на приложение без портала:
https://tm-game-cards-v02.netlify.app/
[*]основной файл (не включая анимацию портала): https://drive.google.com/file/d/1fKABYy ... LZZpa/view
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»