public Bullet(MainGameScene scene, Vector2 pPosition, Vector2 pVelocity, int pPower) : base(scene) { m_Power = pPower; IsMiss = false; CanDelete = false; frames = new List<Texture2D>(); var content = HeartAttack.theGameInstance.Content; cross = content.Load<Texture2D>("cross"); for (int i = 1; i <= 4; i++) { frames.Add(content.Load<Texture2D>("Bullet/bullet" + i)); } m_Sprite = new Sprite(frames[0], pPosition); m_Sprite.AddUpdater(new VelocityUpdater(pVelocity)); m_Sprite.Scale = new Vector2(0.15f); //m_Sprite.Centre *= m_Sprite.Scale; var anim = new SpriteAnimation(Scene.ClockManager, frames, frames[0], this.m_Sprite, 0.05f); anim.Start(); anim.Complete += (s, e) => { anim.Reset(); anim.Start(); }; }
public override void Update(GameTime pGameTime) { if (!runningAnimation) { if (new Random().NextDouble() > 0.95) { runningAnimation = true; var animation = new SpriteAnimation(Scene.ClockManager, this.frames, this.frames[0], this.m_Sprite, 0.05f); animation.Complete += (s, e) => this.runningAnimation = false; animation.Start(); } if (new Random().NextDouble() > 0.99) { runningAnimation = true; var animation = new SpriteAnimation(Scene.ClockManager, this.blinkFrames, this.frames[0], this.m_Sprite, 0.05f); animation.Complete += (s, e) => this.runningAnimation = false; animation.Start(); } } m_Sprite.Update(pGameTime); }