public Emitter(GraphicsObject host, Vector2 position, float speed, float angle, float spread, int generationSpeed, long life, long fadeAge, Particle template, bool generate) { this.host = host; Position = position; Speed = speed; Angle = angle; GenerationSpeed = generationSpeed; Spread = spread; TemplateParticle = template; MaxLife = life; Generate = generate; generationPeriod = 1000.0 / generationSpeed; FadeAge = fadeAge; }
public void RegisterGraphicsObject(GraphicsObject obj) { objects.AddLast(obj); }
// Methods public PlayingState(ActGame Host, Configuration.IOConfig.KeyboardConfig.PlayerKeyConfig LeftControlConfig, Configuration.IOConfig.KeyboardConfig.PlayerKeyConfig RightControlConfig, LinkedList<TrackSelection>[] Selections) : base(Host) { FighterSpriteSheets = new SpriteSheet[noPlayers]; FighterSpriteSheets[atk] = Host.fighterSpriteSheet; FighterSpriteSheets[def] = Host.fighterSpriteSheet; InitialPositions = new Vector2[noPlayers]; InitialPositions[atk] = new Vector2(400, 400); InitialPositions[def] = new Vector2(400, 200); ValidRects = new Rectangle[noPlayers]; ValidRects[atk] = new Rectangle(250, 250, 300, 150); ValidRects[def] = new Rectangle(250, 50, 300, 150); bullet = new Bullet(); bullet.Sprite = Host.bulletSpriteSheet.FrameSprite(0); Fighters = new Fighter[noPlayers]; for (int i = 0; i < noPlayers; ++i) { Fighters[i] = new Fighter(Host, ValidRects[i], bullet, RegisterBullet); Fighters[i].Sprite = FighterSpriteSheets[i].FrameSprite(0); } Keyconfigs = new Configuration.IOConfig.KeyboardConfig.PlayerKeyConfig[noPlayers]; Keyconfigs[atk] = LeftControlConfig; Keyconfigs[def] = RightControlConfig; SetActivePlayer(PlayerIndex.One); Ps = new ParticleSystem(); Re = new RhythmEngine(Host.Config); Re.SelectionList = Selections; Re.LeftPlayer.VisibleRange = 2000; Re.RightPlayer.VisibleRange = 2000; Re.LeftPlayer.ShowDebug = false; Re.RightPlayer.ShowDebug = true; Rr = new RhythmRenderer(Re); Rr.Font = Host.sysFont; Rr.LeftDrawRect = new Rectangle(8, 8, 192, 350); Rr.RightDrawRect = new Rectangle(600, 8, 192, 350); LeftController = Host.LeftController; RightController = Host.RightController; // TODO: Debug AI //LeftController = new AiController(Host.Config.IO.Keyboard.Left.Rhythm.KeyCount, Fighters[atk], Re.players[atk]); RightController = new AiController(Host.Config.IO.Keyboard.Right.Rhythm.KeyCount, Fighters[def], Re.players[def]); Re.Lock(); Re.Play(); Particle particle = new Particle(Host.particle1SpriteSheet); GraphicsObject[] FighterGraphicObjs = new GraphicsObject[noPlayers]; for (int i = 0; i < noPlayers; ++i) { FighterGraphicObjs[i] = new GraphicsObject(Fighters[i]); } foreach (GraphicsObject obj in FighterGraphicObjs) { obj.CreateEmitter(new Vector2(0, 5), 0.15f, -MathHelper.PiOver2, MathHelper.PiOver4, 100, 250, 150, particle, true); obj.CreateEmitter(new Vector2(-5, 2), 0.15f, -0.6f * MathHelper.PiOver2, MathHelper.PiOver4 / 2.0f, 50, 250, 150, particle, true); obj.CreateEmitter(new Vector2(5, 2), 0.15f, -1.4f * MathHelper.PiOver2, MathHelper.PiOver4 / 2.0f, 50, 250, 150, particle, true); Ps.RegisterGraphicsObject(obj); } }