コード例 #1
0
ファイル: ParticleEmitter.cs プロジェクト: nemec/4Realms
        /// <summary>
        /// Create Particles
        /// </summary>
        /// <param name="startPosition">Position in Relation to World Coordinates</param>
        /// <param name="size">2 = 4x4 square; 10 = 20x20 square</param>
        /// <param name="timeToLive">Time to Live in Milliseconds</param>
        internal void createParticles(Vector2 velocity, Vector2 acceleration, Vector2 startPosition, float size, int timeToLive)
        {
            if (numOfActiveParticles < maxNumOfParticles)
            {
                //create particle vertices
                particleVertices[numOfActiveParticles * 4]     = new ParticleVertexFormat(new Vector2(startPosition.X - size, startPosition.Y - size), velocity, acceleration, new HalfVector2(0, 0), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);
                particleVertices[numOfActiveParticles * 4 + 1] = new ParticleVertexFormat(new Vector2(startPosition.X + size, startPosition.Y - size), velocity, acceleration, new HalfVector2(1, 0), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);
                particleVertices[numOfActiveParticles * 4 + 2] = new ParticleVertexFormat(new Vector2(startPosition.X + size, startPosition.Y + size), velocity, acceleration, new HalfVector2(1, 1), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);
                particleVertices[numOfActiveParticles * 4 + 3] = new ParticleVertexFormat(new Vector2(startPosition.X - size, startPosition.Y + size), velocity, acceleration, new HalfVector2(0, 1), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);

                //set time to live
                expirationTime[numOfActiveParticles] = timeToLive + (int)This.gameTime.TotalGameTime.TotalMilliseconds;

                moveParticleToGPU(numOfActiveParticles);

                //increment number of particles
                numOfActiveParticles++;
            }
        }
コード例 #2
0
ファイル: ParticleEmitter.cs プロジェクト: nemec/4Realms
        /// <summary>
        /// Create Particles
        /// </summary>
        /// <param name="startPosition">Position in Relation to World Coordinates</param>
        /// <param name="size">2 = 4x4 square; 10 = 20x20 square</param>
        /// <param name="timeToLive">Time to Live in Milliseconds</param>
        internal void createParticles(Vector2 velocity, Vector2 acceleration, Vector2 startPosition, float size, int timeToLive)
        {
            if (numOfActiveParticles < maxNumOfParticles)
            {
                //create particle vertices
                particleVertices[numOfActiveParticles * 4] = new ParticleVertexFormat(new Vector2(startPosition.X - size, startPosition.Y - size), velocity, acceleration, new HalfVector2(0, 0), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);
                particleVertices[numOfActiveParticles * 4 + 1] = new ParticleVertexFormat(new Vector2(startPosition.X + size, startPosition.Y - size), velocity, acceleration, new HalfVector2(1, 0), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);
                particleVertices[numOfActiveParticles * 4 + 2] = new ParticleVertexFormat(new Vector2(startPosition.X + size, startPosition.Y + size), velocity, acceleration, new HalfVector2(1, 1), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);
                particleVertices[numOfActiveParticles * 4 + 3] = new ParticleVertexFormat(new Vector2(startPosition.X - size, startPosition.Y + size), velocity, acceleration, new HalfVector2(0, 1), (int)This.gameTime.TotalGameTime.TotalMilliseconds, timeToLive);

                //set time to live
                expirationTime[numOfActiveParticles] = timeToLive + (int)This.gameTime.TotalGameTime.TotalMilliseconds;

                moveParticleToGPU(numOfActiveParticles);

                //increment number of particles
                numOfActiveParticles++;
            }
        }