public Explosion(float x, float y) : base(x, y) { Emitter = AddComponent(new Emitter(Library.GetTexture("explosion.png"), 60, 60)); for (int i = 0; i < 4; i++) { var name = i.ToString(); Emitter.NewType(name, FP.Frames(i)); Emitter.SetAlpha(name, 1, 0); Emitter.SetMotion(name, 0, 50, 0.4f, 360, 15, 0.15f, Ease.CubeOut); } Width = Height = (int)(Radius * 1.25f); CenterOrigin(); var t = 4; while (t-- > 0) { var name = t.ToString(); for (int j = 0; j < Radius; j++) { var pos = FP.Random.InCircle(Radius); Emitter.Emit(name, pos.X, pos.Y); } } }
private Emitter InitDoubleJump() { var emitter = new Emitter(Library.GetTexture("dust.png"), 24, 24); emitter.NewType("dust", FP.Frames(0, 1)); emitter.SetAlpha("dust", 0.9f, 0, Ease.QuintOut); emitter.SetMotion("dust", 80, 3, 0.5f, 10, 3, 0.2f, Ease.QuintOut); emitter.SetScaling("dust", 1.8f, 1.5f, Ease.QuintOut); return(emitter); }
private Emitter InitBulletTrail() { var emitter = new Emitter(Library.GetTexture("bullet_sparkle.png"), 20, 20); var name = "spark"; emitter.NewType(name, FP.Frames(0, 1, 2, 3, 4)); emitter.SetAlpha(name, 1, 0); emitter.SetMotion(name, 0, 0, 0.5f, 0, 0, 0.25f, Ease.CircOut); return(emitter); }
public Shuriken(float velX, float velY) : base(velX, velY) { spritemap = makeSpritemap(null); spritemap.Add("Ninja", FP.Frames(18, 19), 20, true); AddGraphic(spritemap); spritemap.Play("Ninja"); _onCollide = onCollide; physics.maxXVelocity = 30; }
public Bubble(float velX, float velY) : base(velX, velY) { spritemap = makeSpritemap(onAnimationEnd); spritemap.Add("Bubble", FP.Frames(1, 2, 3), 10, false); spritemap.Add("BubbleLoop", FP.Frames(4, 5, 6), 5, true); spritemap.Add("BubblePop", FP.Frames(7), 10, false); AddGraphic(spritemap); spritemap.Play("Bubble"); SetHitboxTo(spritemap); _onCollide = onCollide; }
private Emitter InitSpeed() { var emitter = new Emitter(Library.GetTexture("speed_particle.png"), 68, 30); emitter.NewType("l", FP.Frames(0)); emitter.SetMotion("l", 0, 50, 0.5f, 0, 15, 1, Ease.QuintOut); emitter.SetAlpha("l", 0.5f, 0, Ease.QuintOut); emitter.NewType("r", FP.Frames(1)); emitter.SetMotion("r", 0, 50, 0.5f, 0, 15, 1, Ease.QuintOut); emitter.SetAlpha("r", 0.5f, 0, Ease.QuintOut); return(emitter); }
public override void Load(System.Xml.XmlNode node) { base.Load(node); cloak = new Spritemap(Library.GetTexture("assets/ArmsBosslowres.png"), 674 / 2, 349 / 2, onAnimationEnd); cloak.Add("Idle", FP.Frames(0), 1, true); cloak.Add("Reveal", FP.MakeFrames(0, 11), 5, false); AddGraphic(cloak); cloak.Scale = 4; cloak.OriginX = 673 / 8 - 15; cloak.OriginY = 349 / 4; cloak.Play("Idle"); }
public Fireball(float velX, float velY) : base(velX, velY) { spritemap = makeSpritemap(null); spritemap.Add("Fireball", FP.Frames(13, 14), 20, true); AddGraphic(spritemap); spritemap.Play("Fireball"); _onCollide = onCollide; physics.Colliders.Add("player"); physics.Colliders.Remove("enemy"); physics.maxXVelocity = 30; }
/// <summary> /// Creates a new Particle type for this Emitter. /// </summary> /// <param name="name">Name of the particle type.</param> /// <param name="frames">Array of frame indices for the particles to animate.</param> /// <returns>A new ParticleType object.</returns> public ParticleType NewType(string name, int[] frames = null) { if (frames == null) { frames = FP.Frames(0); } if (_types.ContainsKey(name)) { throw new Exception("Cannot add multiple particle types of the same name"); } var type = new ParticleType(name, frames, _source, (int)_frameWidth, (int)_frameHeight); _types.Add(name, type); return(type); }
public BossArms() { arms = new Spritemap(Library.GetTexture("assets/Arms.png"), 256, 256, null); arms.Add("Idle", FP.Frames(0), 1, true); arms.Add("Attack", FP.Frames(0, 1), 4, false); arms.OriginX = 128; arms.OriginY = 128; AddGraphic(arms); SetHitbox(256, 256, 128, 128); Type = "enemy"; arms.Play("Idle"); }
private Emitter InitGroundSmash() { var emitter = new Emitter(Library.GetTexture("groundsmash_particle.png"), 3, 3); emitter.Relative = false; for (int i = 0; i < 4; i++) { var name = i.ToString(); emitter.NewType(name, FP.Frames(i)); emitter.SetAlpha(name, 0, 1f); emitter.SetMotion(name, -90, 100, 0.5f, 10, 10, 0.1f, Ease.SineOut); emitter.SetGravity(name, 5, 2); } return(emitter); }
public override void Load(System.Xml.XmlNode node) { base.Load(node); //Graphic = Image.CreateRect(64, 64, FP.Color(0x66FF33)); //make the enemy hittable and all that jazz Type = "enemy"; physics = new PhysicsBody(); physics.Colliders.Add("wall"); physics.Colliders.Add("platform"); physics.Colliders.Add("player"); AddLogic(physics); //hitboxs and such spritemap = new Spritemap(Library.GetTexture("assets/RoadHeadlowres.png"), 167 / 2, 257 / 2, onAnimationEnd); spritemap.Add("Idle", FP.Frames(0), 5, true); spritemap.Add("Move", FP.MakeFrames(0, 2), 5, true); spritemap.Add("ChargeAttack", FP.MakeFrames(3, 12), 8, false); spritemap.Add("Attack", FP.MakeFrames(13, 22), 8, false); spritemap.Add("Recover", FP.MakeFrames(23, 27), 5, false); spritemap.Add("Injured", FP.MakeFrames(27, 23), 5, true); spritemap.Play("Move"); spritemap.OriginX = spritemap.Width / 2; spritemap.OriginY = spritemap.Height; AddGraphic(spritemap); SetOrigin(spritemap.Width / 2, 257 / 2); SetHitbox(spritemap.Width, spritemap.Height, spritemap.Width / 2, spritemap.Height); foreach (System.Xml.XmlNode n in node) { FP.Log(int.Parse(n.Attributes["x"].Value) + " " + float.Parse(n.Attributes["y"].Value)); positionNodes.Add(new Vector2i(int.Parse(n.Attributes["x"].Value), int.Parse(n.Attributes["y"].Value))); } if (positionNodes.Count > 0) { nextNode = positionNodes[0]; MoveToNextPos(); } }
public RazorBlade(float size) { blade = new Image(Library.GetTexture("razor.png")); blade.Scale = size; blade.CenterOO(); SetHitboxTo(blade); CenterOrigin(); emitter = new Emitter(Library.GetTexture("blood.png"), 15, 15); emitter.Relative = false; for (int i = 0; i < 4; ++i) { var name = i.ToString(); emitter.NewType(name, FP.Frames(i)); emitter.SetGravity(name, 10, 10); emitter.SetMotion(name, 0, 50, 0.5f, 360, 15, 1, Ease.QuintOut); emitter.SetAlpha(name, 1, 0, Ease.QuintOut); } AddComponent(blade); AddComponent(emitter); }