Пример #1
0
    public bool Blocked(Vector3 position, Vector2 direction)
    {
        Vector2 newPosition = new Vector2(position.x, position.y) + direction;

        GameObject[] walls = GameObject.FindGameObjectsWithTag("Wall");
        foreach (var wall in walls)
        {
            if (wall.transform.position.x == newPosition.x && wall.transform.position.y == newPosition.y)
            {
                return(true);
            }
        }

        GameObject[] boxes = GameObject.FindGameObjectsWithTag("Box");
        foreach (var box in boxes)
        {
            if (box.transform.position.x == newPosition.x && box.transform.position.y == newPosition.y)
            {
                Box bx = box.GetComponent <Box>();
                if (bx && bx.Move(direction))
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }

        GameObject[] slides = GameObject.FindGameObjectsWithTag("Slide");
        foreach (var slide in slides)
        {
            if (slide.transform.position.x == newPosition.x && slide.transform.position.y == newPosition.y)
            {
                SlideBox sd = slide.GetComponent <SlideBox>();
                if (sd && sd.Move(direction))
                {
                    sd.moving = true;
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }

        GameObject[] sticks = GameObject.FindGameObjectsWithTag("Stick");
        foreach (var stick in sticks)
        {
            if (stick.transform.position.x == newPosition.x && stick.transform.position.y == newPosition.y)
            {
                StickyBox bx = stick.GetComponent <StickyBox>();
                if (bx && bx.Move(direction))
                {
                    return(false);
                }
                else
                {
                    return(true);
                }
            }
        }

        GameObject[] holes = GameObject.FindGameObjectsWithTag("Hole");
        foreach (var hole in holes)
        {
            if (hole.transform.position.x == newPosition.x && hole.transform.position.y == newPosition.y)
            {
                return(true);
            }
        }

        GameObject[] doors = GameObject.FindGameObjectsWithTag("Door");
        foreach (var door in doors)
        {
            if (door.transform.position.x == newPosition.x && door.transform.position.y == newPosition.y)
            {
                Door dr = door.GetComponent <Door>();
                if (!(dr.IsOpen()))
                {
                    return(true);
                }
            }
        }

        return(false);
    }
Пример #2
0
 public BaseSettingsPage(SlideBox box)
 {
     InitializeComponent();
     this.box = box;
 }