internal override void setSprite(ASprite sprite) { base.setSprite(sprite); this.target = isRelative ? Sprite.Position + this.target : this.target; vecOrient = (target - sprite.Position).GetNormalize(); float length = (target - sprite.Position).Length(); speedUpFrames = (int)Math.Round(frames * speedUpRate); speedDownFrames = (int)Math.Round(frames * speedDownRate); speedMaxFrames = (int)Math.Round(frames * (1 - speedUpRate - speedDownRate)); float maxSpeed = length * 2 / ((2 - speedUpRate - speedDownRate) * frames); speedUpStep = speedUpFrames == 0 ? 0 : maxSpeed / speedUpFrames; speedDownStep = speedDownFrames == 0 ? 0 : maxSpeed / speedDownFrames; if (speedUpStep == 0) nowSpeed = maxSpeed; else nowSpeed = 0; }
private void collectAllASprite(ASprite source, List<ASprite> target) { target.Add(source); if (source.Slaves != null && source.isShown) for (int i = 0; i < source.Slaves.Count; i++) collectAllASprite(source.Slaves[i], target); }
private void addSlave(ASprite slave) { spriteList.Add(slave); if (slave.Slaves != null) foreach (ASprite slv in slave.Slaves) addSlave(slv); }
public bool Remove(ASprite sprite) { if (spriteList.IndexOf(sprite) == -1) return false; for (int i = sprite.Slaves.Count - 1; i >= 0; i--) spriteList.Remove(sprite.Slaves[i]); spriteList.Remove(sprite); return true; }
public void Add(ASprite sprite) { sprite.Manager = this; spriteList.Add(sprite); if (sprite.Slaves != null) foreach (ASprite slv in sprite.Slaves) addSlave(slv); }
internal virtual void setSprite(ASprite sprite) { this._sprite = sprite; }
public ASprite(ASprite sp) { Game = sp.Game; _manager = sp._manager; Owner = sp.Owner; Position = sp.Position; Depth = sp.Depth; Origin = sp.Origin; Color = sp.Color; Rotation = sp.Rotation; Scale = sp.Scale; SpriteEffect = sp.SpriteEffect; isActStoped = sp.isActStoped; isEnd = sp.isEnd; isShown = sp.isShown; isColli = sp.isColli; ColliOffset = sp.ColliOffset; ColliRect = sp.ColliRect; Tags = new Dictionary<string, object>(sp.Tags); _prePosition = sp._prePosition; _preRotation = sp._preRotation; MovedVlaue = sp.MovedVlaue; RotatedValue = sp.RotatedValue; isFirstFrame = sp.isFirstFrame; if (sp.Slaves != null) { this.Slaves = new List<ASprite>(); foreach (Sprite slv in sp.Slaves) this.Slaves.Add(slv.Copy()); } if (sp.ActStoreList != null) { this.ActStoreList = new List<Act>(); foreach (Act act in sp.ActStoreList) this.ActStoreList.Add(act.Copy()); this.ActPlayingList = new List<Act>(); foreach (Act act in sp.ActPlayingList) this.ActPlayingList.Add(act.Copy()); } }
private void addSlaveToManger(ASprite slave) { if (slave.Manager != null) Manager.Remove(slave); slave.Manager = this.Manager; if (Manager != null) Manager.Add(slave); if (slave.Slaves != null) foreach (ASprite sslave in slave.Slaves) addSlaveToManger(sslave); }
public virtual void Initialize() { Scale = Vector2.One; Color = Color.White; Rotation = 0; SpriteEffect = SpriteEffects.None; Tags = new Dictionary<string, object>(); isActStoped = false; isEnd = false; isShown = true; isColli = true; Owner = null; _prePosition = Position; _preRotation = Rotation; AttachToOwner = new Attach(true, true, false, true); }
public void AddSlave(ASprite slave) { if (Slaves == null) Slaves = new List<ASprite>(); slave.Owner = this; Slaves.Add(slave); addSlaveToManger(slave); }
internal override void setSprite(ASprite sprite) { base.setSprite(sprite); step = (targetColor - sprite.Color.ToVector3()) / frames; trueColor = sprite.Color.ToVector3(); }
internal override void setSprite(ASprite sprite) { base.setSprite(sprite); trueAlpha = Sprite.Color.A; step = (isRelative ? targetAlpha : targetAlpha - Sprite.Color.A) / (float)frames; }