Changeset 831 for 2010/23


Ignore:
Timestamp:
2010-06-14 23:49:26 (9 years ago)
Author:
sijoseha
Message:

Building up

Location:
2010/23/sijoseha/alpha/Effects
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • 2010/23/sijoseha/alpha/Effects/Explosion.cs

    r822 r831  
    1717    { 
    1818 
    19         public Explosion(ParticleGame game, Vector2 position, String textureName) 
    20             : base(game, position, textureName) 
     19        public Explosion(ParticleGame game, Vector2 position) 
     20            : base(game, position) 
    2121        { 
    2222 
     
    2525        protected override void InitializeParticles() 
    2626        { 
    27              
     27            textureName = "Glow"; 
     28 
     29 
     30            textureType = TextureType.Single; 
     31 
     32            minLifetime = 0.5f; 
     33            maxLifetime = 1.0f; 
     34 
     35            minScale = 0.5f; 
     36            maxScale = 1.0f; 
     37 
     38            minVelocity = 5f; 
     39            maxVelocity = 10f; 
     40 
     41            rotation = 0.0f; 
    2842        } 
    2943    } 
  • 2010/23/sijoseha/alpha/Effects/Particle.cs

    r819 r831  
    1414namespace Effects 
    1515{ 
    16     class Particle 
     16    public class Particle 
    1717    { 
    1818 
     
    8484        #endregion 
    8585 
    86         public void Initialize(Texture2D texture, Vector2 position, float scale, float rotation, Vector2 velocity, float lifetime) 
     86        public void Initialize(Vector2 position, float scale, float rotation, Vector2 velocity, float lifetime) 
    8787        { 
    8888            this.alive = true; 
    89             this.texture = texture; 
    9089            this.position = position; 
    9190            this.scale = scale; 
  • 2010/23/sijoseha/alpha/Effects/ParticleGame.cs

    r822 r831  
    2626        } 
    2727         
    28          
    29         Particle[] particles; 
    3028        Random random = new Random(); 
    31         const int amountOfParticles = 15; 
    3229 
    3330        KeyboardState previousKeyboardState = Keyboard.GetState(); 
     31 
     32        Explosion explosion; 
    3433 
    3534        public ParticleGame() 
    3635        { 
    3736            graphics = new GraphicsDeviceManager(this); 
     37 
     38            explosion = new Explosion(this, Vector2.Zero); 
     39 
    3840            Content.RootDirectory = "Content"; 
    3941        } 
     
    5860        protected override void LoadContent() 
    5961        { 
    60             particles = new Particle[amountOfParticles]; 
    6162            Texture2D glowTexture = Content.Load<Texture2D>("Glow"); 
    6263            Texture2D glowTexture2 = Content.Load<Texture2D>("Glow2"); 
    6364            // Create a new SpriteBatch, which can be used to draw textures. 
    6465            spriteBatch = new SpriteBatch(GraphicsDevice); 
    65             for (int i = 0; i < particles.Length; i++) 
    66             { 
    67                 particles[i] = new Particle(this, glowTexture, glowTexture2, new Vector2( 
    68                     (float)random.NextDouble() * graphics.GraphicsDevice.Viewport.Width, 
    69                     (float)random.NextDouble() * graphics.GraphicsDevice.Viewport.Height), 2.0f); 
    70                 particles[i].Scale = (float)random.NextDouble();//0.2f + (float)random.NextDouble() * 0.8f; 
    71                 particles[i].Velocity = new Vector2( 
    72                     (float)random.NextDouble() * 5 - 2.5f, 
    73                     (float)random.NextDouble() * 5 - 2.5f); 
    74  
    75             } 
    7666            // TODO: use this.Content to load your game content here 
    7767        } 
     
    9484        { 
    9585            float dt = (float)gameTime.ElapsedGameTime.TotalSeconds; 
    96             KeyboardState keyboardState = Keyboard.GetState(); 
    97             MouseState mouseState = Mouse.GetState(); 
    98             // Allows the game to exit 
    99             if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) 
    100                 this.Exit(); 
    101             for (int i = 0; i < particles.Length; i++) 
    102             { 
    103                 if (particles[i].Alive) 
    104                 { 
    105                     particles[i].CurrentTime += dt; 
    106                     particles[i].Scale = 1.0f - (particles[i].Lifetime * particles[i].CurrentTime); 
    107                     particles[i].Position += particles[i].Velocity; 
    108                     if (particles[i].CurrentTime > particles[i].Lifetime) 
    109                     { 
    110                         particles[i].Alive = false; 
    111                     } 
    112                 } 
    113                 if (!particles[i].Alive) 
    114                 { 
    115                     particles[i].Alive = true; 
    116                     particles[i].Lifetime = 2.0f; 
    117                     particles[i].CurrentTime = 0.0f; 
    118                     particles[i].Scale = 1.0f; 
    119                     particles[i].Position = new Vector2( 
    120                         (float)mouseState.X, 
    121                         (float)mouseState.Y); 
    122                     particles[i].Velocity = new Vector2( 
    123                         (float)random.NextDouble() * 5 - 2.5f, 
    124                         (float)random.NextDouble() * 5 - 2.5f); 
    125                     //particles[i].Position = new Vector2( 
    126                     //(float)random.NextDouble() * graphics.GraphicsDevice.Viewport.Width, 
    127                     //(float)random.NextDouble() * graphics.GraphicsDevice.Viewport.Height); 
    128                 } 
    129             } 
    130  
    131             // TODO: Add your update logic here 
    132  
    133             previousKeyboardState = keyboardState; 
    13486            base.Update(gameTime); 
    13587        } 
     
    14395            GraphicsDevice.Clear(Color.Black); 
    14496            // TODO: Add your drawing code here 
    145  
    14697            base.Draw(gameTime); 
    14798        } 
  • 2010/23/sijoseha/alpha/Effects/ParticleSystem.cs

    r822 r831  
    3838        protected Vector2 origin; 
    3939 
    40         protected Vector2 minVelocity; 
    41         protected Vector2 maxVelocity; 
     40        protected float minVelocity; 
     41        protected float maxVelocity; 
    4242 
    4343        protected float minLifetime; 
     
    4646        #endregion 
    4747 
    48         private enum TextureType 
     48        protected enum TextureType 
    4949        { 
    5050            Single, 
     
    5252        }; 
    5353 
    54         private TextureType textureType; 
     54        protected TextureType textureType; 
    5555 
    5656        private Texture2D texture, innerTexture, outerTexture; 
     
    6464        } 
    6565 
    66         public ParticleSystem(ParticleGame game, Vector2 position, String textureName) 
     66        public ParticleSystem(ParticleGame game, Vector2 position) 
    6767            : base(game) 
    6868        { 
    69             textureType = TextureType.Single; 
    70             this.game = game; 
    71         } 
    72  
    73         public ParticleSystem(ParticleGame game, Vector2 position, String innerTextureName, String outerTextureName) 
    74             : base(game) 
    75         { 
    76             textureType = TextureType.Dual; 
    7769            this.game = game; 
    7870        } 
     
    8072        protected abstract void InitializeParticles(); 
    8173 
     74        protected virtual void InitializeParticle(Particle p, Vector2 position) 
     75        { 
     76            Vector2 direction = new Vector2(-100, 0); 
     77 
     78            float scale = 1.0f; 
     79            float rotation = 0.0f; 
     80            float velocity = 1.0f; 
     81            float lifetime = 1.0f; 
     82 
     83            p.Initialize(position, scale, rotation, velocity * direction, lifetime); 
     84        } 
     85 
    8286        public override void Initialize() 
    8387        { 
     88            particles = new Particle[maxAmountOfParticles]; 
    8489            for (int i = 0; i < maxAmountOfParticles; i++) 
    8590            { 
     
    9196        protected override void LoadContent() 
    9297        { 
    93             particles = new Particle[maxAmountOfParticles]; 
    9498            if (textureType == TextureType.Single) 
    9599            { 
     
    111115        public override void Update(GameTime gameTime) 
    112116        { 
     117            float time = (float)gameTime.ElapsedGameTime.TotalSeconds; 
     118 
     119            foreach (Particle p in particles) 
     120            { 
     121                if (p.Alive) 
     122                { 
     123                    p.Update(time); 
     124                } 
     125            } 
    113126 
    114127            base.Update(gameTime); 
Note: See TracChangeset for help on using the changeset viewer.