//判断周围是否有玩家,并返回方向 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); }
public Entity AddGameBoardCache(Entitas.Entity[,] newGrid) { var component = new GameBoardCacheComponent(); component.grid = newGrid; return(AddGameBoardCache(component)); }
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); }
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)); }
//判断周围是否为空 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; }
public Entity AddGameBoardCache(GameBoardCacheComponent component) { return(AddComponent(ComponentIds.GameBoardCache, component)); }