aboutsummaryrefslogtreecommitdiff
path: root/SuperPolarityMac/Particle.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SuperPolarityMac/Particle.cs')
-rw-r--r--SuperPolarityMac/Particle.cs51
1 files changed, 51 insertions, 0 deletions
diff --git a/SuperPolarityMac/Particle.cs b/SuperPolarityMac/Particle.cs
new file mode 100644
index 0000000..d65bac6
--- /dev/null
+++ b/SuperPolarityMac/Particle.cs
@@ -0,0 +1,51 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Microsoft.Xna.Framework;
+using Microsoft.Xna.Framework.Graphics;
+
+namespace SuperPolarity
+{
+ class Particle
+ {
+ public Texture2D Texture { get; set; }
+ public Vector2 Position { get; set; }
+ public Vector2 Velocity { get; set; }
+ public float Angle { get; set; }
+ public float AngularVelocity { get; set; }
+ public Color Color { get; set; }
+ public float Size { get; set; }
+ public int TTL { get; set; }
+
+ public Particle(Texture2D texture, Vector2 position, Vector2 velocity,
+ float angle, float angularVelocity, Color color, float size, int ttl)
+ {
+ Texture = texture;
+ Position = position;
+ Velocity = velocity;
+ Angle = angle;
+ AngularVelocity = angularVelocity;
+ Color = color;
+ Size = size;
+ TTL = ttl;
+ }
+
+ public void Update()
+ {
+ TTL--;
+ Position += Velocity;
+ Angle += AngularVelocity;
+ }
+
+ public void Draw(SpriteBatch spriteBatch)
+ {
+ Rectangle sourceRectangle = new Rectangle(0, 0, Texture.Width, Texture.Height);
+ Vector2 origin = new Vector2(Texture.Width / 2, Texture.Height / 2);
+
+ spriteBatch.Draw(Texture, Position, sourceRectangle, Color,
+ Angle, origin, Size, SpriteEffects.None, 0f);
+ }
+
+ }
+}