Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 具有不同图像的粒子。[qml]_Image_Qt_Qml_Particles - Fatal编程技术网

Image 具有不同图像的粒子。[qml]

Image 具有不同图像的粒子。[qml],image,qt,qml,particles,Image,Qt,Qml,Particles,我使用的是粒子系统。我的粒子从中心出来,但我想要不同的图像出来。 这些图像的文件路径存储在一个数组中。我创建了一个函数来完成该安排并返回每个位置中的内容。 返回的是要发送到ImageParticle的源的每个图像的路径。 问题是,如果滚动整个数组,但只返回最后一个图像的路径,逻辑上,我会得到一个图像,而不是数组中存储的二十个图像。 有人能帮我吗? 帮助和建议被广泛接受 这是我的代码: import QtQuick 2.0 import QtQuick.Particles 2.0 Rec

我使用的是粒子系统。我的粒子从中心出来,但我想要不同的图像出来。
这些图像的文件路径存储在一个数组中。我创建了一个函数来完成该安排并返回每个位置中的内容。
返回的是要发送到ImageParticle的源的每个图像的路径。

问题是,如果滚动整个数组,但只返回最后一个图像的路径,逻辑上,我会得到一个图像,而不是数组中存储的二十个图像。
有人能帮我吗?
帮助和建议被广泛接受

这是我的代码:

import QtQuick 2.0
import QtQuick.Particles 2.0    

Rectangle {
    id: bg
    width: 1920         //360
    height: 1080            //360
    color: "black"

    ParticleSystem {
        id: particleSys
    }            

    Emitter{
        id: particles
        anchors.centerIn: parent
        height: 1; width: 1
        system: particleSys
        emitRate: 30
        lifeSpan: 4000
        lifeSpanVariation: 500
        maximumEmitted: 1000
        size: 5
        endSize: 200                      

        velocity: TargetDirection{      
            targetX: 100; targetY: 100
            targetVariation: 360
            magnitude: 250
        }            
    }         

    property var picturesList: [
        "images/Image1.png", "images/Image2.png", "images/Image3.png", "images/Image4.png", "images/Image5.png", "images/Image6.png", "images/Image7.png", "images/Image8.png", "images/Image9.png", "images/Image10.png",
        "images/Image11.png", "images/Image12.png", "images/Image13.png", "images/Image14.png", "images/Image15.png", "images/Image16.png", "images/Image17.png", "images/Image18.png", "images/Image19.png", "images/Image20.png"
    ]

    function getImage(arr){
        var flag = "";
        for(var i = 0; i < arr.length ; i++){                    
            flag = arr[i];
            console.log("Image: " + arr[i] + " flag: " + flag )   //To check if array is traversing.
        }    
        return flag;
    }

    ImageParticle{            
        property var link: getImage(picturesList)
        source: link
        system: particleSys
    }

    // To check which image is returned.
    MouseArea {  
        anchors.fill: parent
        onClicked: {
            console.log(getImage(picturesList))
        }
    }             
}
导入QtQuick 2.0
导入QtQuick.Particles 2.0
长方形{
id:bg
宽度:1920//360
高度:1080//360
颜色:“黑色”
粒子系统{
id:particleSys
}            
发射器{
id:粒子
anchors.centerIn:父对象
高度:1;宽度:1
系统:particleSys
发射率:30
寿命:4000
寿命变化:500
最高限额:1000
尺码:5
完尺寸:200
速度:目标方向{
targetX:100;targetY:100
目标变化:360
震级:250
}            
}         
属性var图片列表:[
“images/Image1.png”、“images/Image2.png”、“images/Image3.png”、“images/Image4.png”、“images/Image5.png”、“images/Image6.png”、“images/Image7.png”、“images/Image8.png”、“images/Image9.png”、“images/Image10.png”,
“images/Image11.png”、“images/Image12.png”、“images/Image13.png”、“images/Image14.png”、“images/Image15.png”、“images/Image16.png”、“images/Image17.png”、“images/Image18.png”、“images/Image19.png”、“images/Image20.png”
]
函数getImage(arr){
var flag=“”;
对于(var i=0;i
我是问上一个问题的人,我带来了答案。
我非常清楚有几种方法可以解决这个问题,如果你知道另一种方法,我邀请你分享。
欢迎对答复提出建议

我在这里分享代码:

import QtQuick 2.0
import QtQuick.Particles 2.0

Rectangle {
    id: bg
    width: 1920         
    height: 1080        
    color: "black"

    ParticleSystem {
        id: particleSys
    }           

    Emitter{
        id: particles
        anchors.centerIn: parent
        height: 1; width: 1
        system: particleSys
        emitRate: 30
        lifeSpan: 4000
        lifeSpanVariation: 500
        maximumEmitted: 1000
        size: 5
        endSize: 200                          

        velocity: TargetDirection{      //4
            targetX: 100; targetY: 100
            targetVariation: 360
            magnitude: 250
        }            
    }         
    property var picturesList: [
        "images/Image1.png", "images/Image2.png", "images/Image3.png", "images/Image4.png", "images/Image5.png", "images/Image6.png", "images/Image7.png", "images/Image8.png", "images/Image9.png", "images/Image10.png",
        "images/Image11.png", "images/Image12.png", "images/Image13.png", "images/Image14.png", "images/Image15.png", "images/Image16.png", "images/Image17.png", "images/Image18.png", "images/Image19.png", "images/Image20.png"
    ]          

    ItemParticle {
        id: particle
        system: particleSys
        delegate: itemDelegate
    }

    Component {
        id: itemDelegate
        Rectangle {
            id: container
            width: 26*Math.ceil(Math.random()*3); height: width
            color: 'white'
            Image {
                anchors.fill: parent
                anchors.margins: 3
                source: 'images/Image'+Math.ceil(Math.random()*20)+'.png'            
            }
        }
    }            
} 
如您所见,文件夹中的所有图像都将被输出。
我只需将“ImageParticle”更改为“ItemParticle”,然后添加一个“组件”,作为所需图像所在位置的代理。
因此,我们不会使用数组(在前面的代码中省略它),因为现在只有图像的路径与随机数连接(用于选择图像)。
我希望您能为他们服务,如果您有更好的实施方案,请让他们知道