Ejemplo n.º 1
0
        public IEnumerable <Sprite> CreateSprites(string stageFile, SpriteForm renderWindow)
        {
            var onStages = LoadJsonSprites <List <JsonSprite> >(stageFile);

            return(onStages.Select(x =>
                                   MakeSprite(x, _staticDef, renderWindow)));
        }
Ejemplo n.º 2
0
        private void NewSprite_Click(object sender, EventArgs e)
        {
            Form childForm = new SpriteForm();

            childForm.MdiParent = this;
            childForm.Text      = "Sprite " + childFormNumber++;
            childForm.Show();
        }
Ejemplo n.º 3
0
 public MySprite AddForm(Vector2 position, SpriteForm form, float width, float height, Color color)
 {
     return(AddSprite(new MySprite()
     {
         Type = SpriteType.TEXTURE,
         Data = form.ToString(),
         Size = new Vector2(width, height),
         Color = color,
         Position = position + new Vector2(0, height / 2)
     }));
 }
Ejemplo n.º 4
0
 public PersonSprite(SpriteForm window, Person person) : base(window)
 {
     Body.BodyType        = BodyType.Dynamic;
     Body.SleepingAllowed = false;
     Name     = "Person";
     Frames   = new[] { person.PsdImage };
     Center   = circleShape.Center;
     Position = RandomPosition();
     UserData = person;
     SetShapes(circleShape.Clone());
     AddBehavior(new AutoBorderBehavior());
     AddBehavior(new GoTransparentKillingBehavior());
 }
Ejemplo n.º 5
0
        private Sprite MakeSprite(
            JsonSprite def,
            Dictionary <string, JsonSpriteStaticDefinition> defs,
            SpriteForm xResource)
        {
            var sprite = new Sprite(xResource);

            var staticDef = defs[def.Type];

            sprite.Body.BodyType = FarseerPhysics.Dynamics.BodyType.Static;
            sprite.Name          = def.Type;
            sprite.Frames        = staticDef.Frames;
            sprite.Position      = new Vector2(def.Position[0], def.Position[1]);
            sprite.Center        = new Vector2(staticDef.Center[0], staticDef.Center[1]);
            sprite.Rotation      = MathUtil.DegreesToRadians(def.Angle);
            sprite.Alpha         = def.Alpha;

            // Shapes
            sprite.SetShapes(staticDef.Shapes
                             .Select(x => x.Create(sprite.Center))
                             .ToArray());

            sprite.Children.AddRange(
                staticDef.Children.Select(child =>
                                          MakeSprite(child, defs, xResource)));
            sprite.Children.AddRange(
                def.Children.Select(child =>
                                    MakeSprite(child, defs, xResource)));

            // Behaviors
            //sprite.Behaviors["default"] = new AutoFrameBehavior(sprite);
#if DEBUG
            sprite.AddBehavior(new AutoBorderBehavior());
#endif
            var finalBehaviors = new Dictionary <string, Dictionary <string, object> >();
            foreach (var behavior in staticDef.Behaviors)
            {
                finalBehaviors.Add(behavior.Key, behavior.Value);
            }
            foreach (var behavior in def.Behaviors)
            {
                finalBehaviors[behavior.Key] = behavior.Value;
            }

            foreach (var behavior in finalBehaviors)
            {
                sprite.AddBehavior(BehaviorExtensions.Create(behavior.Key, behavior.Value));
            }

            return(sprite);
        }
Ejemplo n.º 6
0
        public void Execute()
        {
            if (!Check())
            {
                return;
            }

            if (form.listAssets.SelectedIndices.Count == 0)
            {
                return;
            }

            Model.Asset asset      = form.project.Assets[form.listAssets.SelectedIndices[0]];
            SpriteForm  spriteForm = new SpriteForm()
            {
                Atlas = asset.Atlas
            };

            spriteForm.UpdateList();
            spriteForm.ShowDialog(form);

            form.dirty = true;
            form.UpdateTitle();
        }