public virtual void CaptureModelState(GameObject model_ptr) { pos = SVector.FromVector2(model_ptr.Position); color = SColor.FromColor(model_ptr.color); sprite_state = model_ptr.Sprite.NowState(); sprite_frame = model_ptr.Sprite.NowFrame(); sprite_direction = model_ptr.Sprite.Direction; }
public Monstar(Vector2 p, GameInstance g, Controller.Direction dir) : base(Load.MonstarTexture, new Sprite("Content.character.MonstarXml.xml"), p) { Mass = 25; Damage = 1; this.g = g; Sprite.ChangeDirection(dir); }
protected override void ApplyCollision(Vector2 imp, PhysicalObject obj, float elapsed) { base.ApplyCollision(imp, obj, elapsed); if (obj is Monstar) { Controller.Direction other_dir = Controller.Direction.LEFT; if (Sprite.Direction == other_dir) { other_dir = Controller.Direction.RIGHT; } Sprite.ChangeDirection(other_dir); } }
/// <summary> /// Change the direction of the sprite (flip horizontally) /// </summary> /// <param name="new_dir">New direction</param> public void ChangeDirection(Controller.Direction new_dir) { if (new_dir != Direction) { Direction = new_dir; if (new_dir == Controller.Direction.RIGHT) { Effect = SpriteEffects.None; } if (new_dir == Controller.Direction.LEFT) { Effect = SpriteEffects.FlipHorizontally; } } }