コード例 #1
0
        public Particle(OpenGL _openGL)
        {
            openGL       = _openGL;
            particleData = new ParticleData();
            int iPaticleCount = particleData.MaxParticles;

            particleData.ParticleInit = false;

            particles = new ParticleEngine[iPaticleCount];

            SetTexture(particleData.Texture, particleData.CustomTexture);

            Random rndParticleStart = new Random();

            for (int i = 0; i < iPaticleCount; i++)
            {
                int iMinStart = 0;
                int iMaxStart = 3;

                float fStart = rndParticleStart.Next(iMinStart, iMaxStart);

                ParticleEngine particleEngine = new ParticleEngine(_openGL);
                particles[i] = particleEngine;
                particles[i].ParticleMove(fStart, true);
            }
        }
コード例 #2
0
            public void SetColor(ParticleData _particleData)
            {
                startr = _particleData.ColorStartR;
                startg = _particleData.ColorStartG;
                startb = _particleData.ColorStartB;
                starta = _particleData.ColorStartA;

                finishr = _particleData.ColorFinishR;
                finishg = _particleData.ColorFinishG;
                finishb = _particleData.ColorFinishB;
                finisha = _particleData.ColorFinishA;
            }
コード例 #3
0
        public void Draw(ref ParticleData _particleData, Texture _texture)
        {
            m_particleData = _particleData;

            _texture.Bind(m_openGL);

            float fColorR = m_particleData.ColorStartR + m_ParticalColor.ModifyR;
            float fColorG = m_particleData.ColorStartG + m_ParticalColor.ModifyG;
            float fColorB = m_particleData.ColorStartB + m_ParticalColor.ModifyB;
            float fColorA = m_particleData.ColorStartA + m_ParticalColor.ModifyA;

            m_openGL.Color(fColorR, fColorG, fColorB, fColorA);

            m_openGL.TexCoord(1.0f, 0.0f); m_openGL.Vertex(m_particleLocation.UpX, m_particleLocation.UpY, 0);
            m_openGL.TexCoord(0.0f, 0.0f); m_openGL.Vertex(m_particleLocation.DownX, m_particleLocation.UpY, 0);
            m_openGL.TexCoord(0.0f, 1.0f); m_openGL.Vertex(m_particleLocation.DownX, m_particleLocation.DownY, 0);
            m_openGL.TexCoord(1.0f, 1.0f); m_openGL.Vertex(m_particleLocation.UpX, m_particleLocation.DownY, 0);
        }