javascript - Particles.js 中的多个图像作为形状

标签 javascript particles particle-system

我正在使用 Particles.js(请参见此处: https://github.com/VincentGarreau/particles.js/http://vincentgarreau.com/particles.js/ )进行设计项目。

是否可以将多个图像作为“形状”、不同的“image.src”?如果是这样我该怎么做?

谢谢

最佳答案

是的,这是可能的。请参阅https://www.josh.ai/ (那不是我的网站,但它可以满足您的要求)。

查看源代码,但更具体地说,我认为他修改了 keywords.js 文件:https://www.josh.ai/static/js/particles.min.js

看一下这部分代码:

switch (i.canvas.ctx.fillStyle = n, i.canvas.ctx.beginPath(), a.shape) {
            case "circle":
                i.canvas.ctx.arc(a.x, a.y, t, 0, 2 * Math.PI, !1);
                break;
            case "edge":
                i.canvas.ctx.rect(a.x - t, a.y - t, 2 * t, 2 * t);
                break;
            case "triangle":
                i.fn.vendors.drawShape(i.canvas.ctx, a.x - t, a.y + t / 1.66, 2 * t, 3, 2);
                break;
            case "polygon":
                i.fn.vendors.drawShape(i.canvas.ctx, a.x - t / (i.particles.shape.polygon.nb_sides / 3.5), a.y - t / .76, 2.66 * t / (i.particles.shape.polygon.nb_sides / 3), i.particles.shape.polygon.nb_sides, 1);
                break;
            case "star":
                i.fn.vendors.drawShape(i.canvas.ctx, a.x - 2 * t / (i.particles.shape.polygon.nb_sides / 4), a.y - t / 1.52, 2 * t * 2.66 / (i.particles.shape.polygon.nb_sides / 3), i.particles.shape.polygon.nb_sides, 2);
                break;
            case "image":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                r && e()
                break;
            case "image2":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex2a.png';
                r = element;
                r && e()
                break;
            case "image3":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex3a.png';
                r = element;
                r && e()
                break;
             case "image4":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex4a.png';
                r = element;
                r && e()   
                break;
            case "image5":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex5a.png';
                r = element;
                r && e()
                break;
            case "image6":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex6a.png';
                r = element;
                r && e()
                break;
             case "image7":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex7a.png';
                r = element;
                r && e() 
                break;
            case "image8":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex8a.png';
                r = element;
                r && e()
                break;
            case "image9":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex9a.png';
                r = element;
                r && e()
                break;
             case "image10":
                if ("svg" == i.tmp.img_type) var r = a.img.obj;
                else var r = i.tmp.img_obj;
                var element = document.createElement('img');
                element.src = 'https://s3.amazonaws.com/josh.ai/hex10a.png';
                r = element;
                r && e() 
        }

image1、image2 等的每种情况都链接到不同的 png 文件。我认为如果您仍然感兴趣的话,查看那个人的代码应该会让您有所收获。

关于javascript - Particles.js 中的多个图像作为形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31939256/

相关文章:

java - LibGDX 点 Sprite 蜂群的正确方法?

javascript - Particles.js — 框架更改时修改

c++ - OpenGL 粒子,帮助控制方向

python - 如何实现粒子引擎

javascript - Google Geomap API 更改区域选项 onClick()

javascript - 我的 RESTful API 未更新数据库,但 ajax 返回成功

javascript - 无法让 document.write 与 ajax 一起使用

javascript - 使用 Javascript 即时创建嵌套对象

three.js - 为什么带着色器的粒子系统不起作用?三.js

scenekit - SCNParticles的性能最高图像格式?