public void AddAnimation(AnimationInfo newAnimation) { _animations.Add(newAnimation); newAnimation.Parent = this; UpdateBoundingRectSize(); }
private void toolStripButtonCopyAnimation_Click(object sender, EventArgs e) { int selCnt = listViewAnimations.SelectedIndices.Count; int[] selIndices = new int[selCnt]; listViewAnimations.SelectedIndices.CopyTo(selIndices, 0); for (int i = 0; i < selCnt; i++) { AnimationInfo selAnim = this.AnimatedSprite.Animations[selIndices[i]]; string newAnimName = GetNewAnimationName(selAnim.Name + "_"); AnimationInfo newAnim = new AnimationInfo(newAnimName); selAnim.CopyValuesTo(newAnim, this.AnimatedSprite); newAnim.Name = newAnimName; this.AnimatedSprite.AddAnimation(newAnim); listViewAnimations.Items.Add(newAnim.Name); if (i == 0) { listViewAnimations.SelectedIndices.Clear(); } listViewAnimations.SelectedIndices.Add(this.AnimatedSprite.Animations.Count - 1); } }
internal void OnEndOfAnimLoopReached(AnimationInfo animation) { if (_queuedAnimationID.HasValue) { animation.IsStopped = true; animation.Reset(); _currentAnimationID = _queuedAnimationID.Value; _animations[_queuedAnimationID.Value].Play(); UpdateBoundingRectSize(); _queuedAnimationID = null; } if (EndOfAnimLoopReached != null) { EndOfAnimLoopReached(animation, EventArgs.Empty); } }
private void toolStripButtonAddAnimation_Click(object sender, EventArgs e) { AnimationInfo newAnim = new AnimationInfo(GetNewAnimationName("New Animation ")); this.AnimatedSprite.AddAnimation(newAnim); listViewAnimations.Items.Add(newAnim.Name); listViewAnimations.SelectedIndices.Clear(); listViewAnimations.SelectedIndices.Add(this.AnimatedSprite.Animations.Count - 1); }
public void CopyValuesTo(AnimationInfo target, AnimatedSprite newParent) { target.Parent = newParent; target.Name = Name; target.IsPaused = this.IsPaused; target.IsStopped = this.IsStopped; target.LoopMax = this.LoopMax; target.AutoPlay = this.AutoPlay; target.HideWhenStopped = this.HideWhenStopped; // copy frames (it's a struct, so it's copied by value) target.AnimationFrames.Clear(); for (int i = 0; i < this.AnimationFrames.Count; i++) { target.AnimationFrames.Add(this.AnimationFrames[i]); } target.Reset(); }
internal SceneItem InstanciateNewItemOfType(SceneItemType type) { SceneItem item = null; switch (type) { case SceneItemType.AnimatedSprite: item = new AnimatedSprite(); AnimatedSprite animatedSprite = item as AnimatedSprite; animatedSprite.Material = SceneManager.GetEmbeddedTileGridMaterial(); AnimationInfo newAnim = new AnimationInfo("Counting"); newAnim.AnimationFrames.Add(new AnimationFrame(20, "1")); newAnim.AnimationFrames.Add(new AnimationFrame(20, "2")); newAnim.AnimationFrames.Add(new AnimationFrame(20, "3")); newAnim.AnimationFrames.Add(new AnimationFrame(20, "4")); animatedSprite.AddAnimation(newAnim); animatedSprite.PlayAnimation("Counting"); break; case SceneItemType.ParticleEffect: item = new ParticleEffect(); ParticleEffect effect = item as ParticleEffect; IceCream.SceneItems.ParticlesClasses.ParticleType pType = new IceCream.SceneItems.ParticlesClasses.ParticleType(); pType.Material = SceneManager.GetEmbeddedParticleMaterial(); effect.Emitter.ParticleTypes.Add(pType); effect.Name = "New Particle Effect"; effect.Play(); break; case SceneItemType.PostProcessingAnimation: item = new PostProcessAnimation(); item.Layer = 1; break; case SceneItemType.Sprite: item = new Sprite(); Sprite sprite = item as Sprite; sprite.Name = GetNewSpriteName(); ; sprite.Material = SceneManager.GetEmbeddedParticleMaterial(); break; case SceneItemType.TextItem: item = new TextItem(); TextItem text = item as TextItem; text.Name = GetNewTextItemName(); text.Font = SceneManager.GetEmbeddedFont("DefaultFont"); break; case SceneItemType.TileGrid: item = new TileGrid(); TileGrid tileGrid = item as TileGrid; tileGrid.Name = "New Tile Grid"; tileGrid.Material = SceneManager.GetEmbeddedTileGridMaterial(); tileGrid.TileRows = 4; tileGrid.TileCols = 10; tileGrid.TileSize = new Microsoft.Xna.Framework.Point(32, 32); TileLayer newLayer = new TileLayer(tileGrid.TileCols, tileGrid.TileRows); newLayer.Parent = tileGrid; newLayer.Visible = true; newLayer.Name = "Layer 1"; for (int tx = 0; tx < tileGrid.TileCols; tx++) { for (int ty = 0; ty < tileGrid.TileRows; ty++) { newLayer.Tiles[tx][ty].Index = 0; } } tileGrid.TileLayers.Add(newLayer); break; case SceneItemType.CompositeEntity: item = new CompositeEntity(); CompositeEntity composite = item as CompositeEntity; break; default: item = new SceneItem(); break; } return item; }
private static void WriteAnimationInfo(XmlDocument _doc, XmlNode itemNode, AnimationInfo animationInfo) { XmlNode _anim = itemNode.AppendChild(_doc.CreateElement("Animation")); _anim.Attributes.Append(_doc.CreateAttribute("Name")).InnerText = animationInfo.Name; WriteIAnimationProperties(_doc, _anim, animationInfo as IAnimation); _anim.AppendChildIfNotNull(WriteProperty("AnimationFrames", animationInfo, _doc)); }
private static AnimationInfo GetAnimationInfoFromNode(XmlNode node) { AnimationInfo animInfo = new AnimationInfo(String.Empty); SetIAnimationProperties(node, animInfo as IAnimation); animInfo.Name = node.Attributes["Name"].Value; SetProperty("AnimationFrames", animInfo, node); return animInfo; }