Exemplo n.º 1
0
 public void GameState_Create()
 {
     GameState gt = new GameState("test");
     gt.Size = this.form.Size;
     gt.Form = this.form;
     gt.Construct();
 }
Exemplo n.º 2
0
        private List<Entity> parseStringList(List<String> list, int x, int y, GameState game)
        {
            List<Entity> eList = new List<Entity>();
            foreach(String s in list){
                String entityName = s.Split(':')[0];
                int depth = int.Parse(s.Split(':')[1]);
                int xOffset = int.Parse(s.Split(':')[2]);
                int yOffset = int.Parse(s.Split(':')[3]);

                Entity entity = game.getEntityHandler().parse(entityName, new Point((TILE_WIDTH*x)+xOffset, (TILE_HEIGHT*y)+yOffset), depth);

                entity.SetPosition(entity.posVector.x + (entity.Sprite.Image.Width / 2), entity.posVector.y - entity.Sprite.Image.Height);

                bool iface = entity.GetType().GetInterfaces().Any(i =>
                              i.IsGenericType &&
                              i.GetGenericTypeDefinition() == typeof(IEntityParent<>));

                if(iface) {
                    try {
                        var meth = entity.GetType().GetMethod("GetChildrenAsEntities");
                        List<Entity> children = (List<Entity>)meth.Invoke(entity, null);
                        foreach(Entity c in children) {
                            c.SetPosition(c.posVector.x + (entity.Sprite.Image.Width / 2), c.posVector.y - entity.Sprite.Image.Height);
                        }
                        eList.AddRange(children);
                    } catch(Exception e) {
                        Console.WriteLine(e.ToString());
                    }
                }
                eList.Add(entity);
            }
            return eList;
        }