Beispiel #1
0
    //判断周围是否有玩家,并返回方向
    public static bool Around(this Entity entity, GameBoardCacheComponent boardCache, out Vector2 dir)
    {
        var pos = entity.view.gameObject.transform.position;

        for (int i = -1; i <= 1; i++)
        {
            if (i != 0 && (pos.x + i >= 0 && pos.x + i < 8))
            {
                if (boardCache.grid[(int)pos.x + i, (int)pos.y] != null)
                {
                    if (boardCache.grid[(int)pos.x + i, (int)pos.y].view.gameObject.tag
                        == GameTags.Player.ToString())
                    {
                        dir = new Vector2(i, 0);
                        return(true);
                    }
                }
            }
            if (i != 0 && (pos.y + i >= 0 && pos.y + i < 8))
            {
                if (boardCache.grid[(int)pos.x, (int)pos.y + i] != null)
                {
                    if (boardCache.grid[(int)pos.x, (int)pos.y + i].view.gameObject.tag
                        == GameTags.Player.ToString())
                    {
                        dir = new Vector2(0, i);
                        return(true);
                    }
                }
            }
        }
        dir = new Vector2(0, 0);
        return(false);
    }
Beispiel #2
0
        public Entity AddGameBoardCache(Entitas.Entity[,] newGrid)
        {
            var component = new GameBoardCacheComponent();

            component.grid = newGrid;
            return(AddGameBoardCache(component));
        }
Beispiel #3
0
        public Entity SetGameBoardCache(GameBoardCacheComponent component)
        {
            if (hasGameBoardCache)
            {
                throw new SingleEntityException(Matcher.GameBoardCache);
            }
            var entity = CreateEntity();

            entity.AddGameBoardCache(component);
            return(entity);
        }
 public Entity ReplaceGameBoardCache(Entitas.Entity[,] newGrid)
 {
     GameBoardCacheComponent component;
     if (hasGameBoardCache) {
         WillRemoveComponent(ComponentIds.GameBoardCache);
         component = gameBoardCache;
     } else {
         component = new GameBoardCacheComponent();
     }
     component.grid = newGrid;
     return ReplaceComponent(ComponentIds.GameBoardCache, component);
 }
Beispiel #5
0
        public Entity ReplaceGameBoardCache(Entitas.Entity[,] newGrid)
        {
            GameBoardCacheComponent component;

            if (hasGameBoardCache)
            {
                WillRemoveComponent(ComponentIds.GameBoardCache);
                component = gameBoardCache;
            }
            else
            {
                component = new GameBoardCacheComponent();
            }
            component.grid = newGrid;
            return(ReplaceComponent(ComponentIds.GameBoardCache, component));
        }
Beispiel #6
0
    //判断周围是否为空
    public static bool Around(this Entity entity, GameBoardCacheComponent boardCache)
    {
        var pos = entity.view.gameObject.transform.position;

        for (int i = -1; i <= 1; i++)
        {
            if (i != 0 && (pos.x + i >= 0 && pos.x + i < 8))
            {
                if (boardCache.grid[(int)pos.x + i, (int)pos.y] == null)
                {
                    return(false);
                }
            }
            if (i != 0 && (pos.y + i >= 0 && pos.y + i < 8))
            {
                if (boardCache.grid[(int)pos.x, (int)pos.y + i] == null)
                {
                    return(false);
                }
            }
        }
        return(true);
    }
 public Entity AddGameBoardCache(Entitas.Entity[,] newGrid)
 {
     var component = new GameBoardCacheComponent();
     component.grid = newGrid;
     return AddGameBoardCache(component);
 }
 public Entity AddGameBoardCache(GameBoardCacheComponent component)
 {
     return AddComponent(ComponentIds.GameBoardCache, component);
 }
 public Entity SetGameBoardCache(GameBoardCacheComponent component)
 {
     if (hasGameBoardCache) {
         throw new SingleEntityException(Matcher.GameBoardCache);
     }
     var entity = CreateEntity();
     entity.AddGameBoardCache(component);
     return entity;
 }
Beispiel #10
0
 public Entity AddGameBoardCache(GameBoardCacheComponent component)
 {
     return(AddComponent(ComponentIds.GameBoardCache, component));
 }