コード例 #1
0
 public void AddAnimation(AnimationInfo newAnimation)
 {
     _animations.Add(newAnimation);
     newAnimation.Parent = this;
     UpdateBoundingRectSize();
 }
コード例 #2
0
 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); 
     }   
 }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
 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);             
 }
コード例 #5
0
 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();
 }
コード例 #6
0
        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;
        }
コード例 #7
0
ファイル: SceneSerializer.cs プロジェクト: dekk7/xEngine
 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));
 }
コード例 #8
0
ファイル: SceneSerializer.cs プロジェクト: dekk7/xEngine
 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;
 }