Example #1
0
    void OnMouseUp()
    {
        if (xAxisFree || yAxisFree)
        {
            yAxisFree = false;
            xAxisFree = false;
            if (translatedObjects != null && translatedObjects.Count > 0)
            {
                while (translatedObjects.Count > 0)
                {
                    FieldElement tempField = new FieldElement(new Vector2(100, 100));
                    foreach (FieldElement field in translatedObjects)
                    {
                        if (Vector2.Distance(field.Coordinate, FieldContainer.GetFreeFieldElement().Coordinate) < Vector2.Distance(tempField.Coordinate, FieldContainer.GetFreeFieldElement().Coordinate))
                        {
                            tempField = field;
                        }
                    }
                    MovementHandler.newHoldPoint(tempField.fieldObject);
                    tempField.fieldObject.transform.DOLocalMove(MovementHandler.GetObjectPosition(tempField.fieldObject), 0.5f);
                    translatedObjects.Remove(tempField);
                }
                translatedObjects.Clear();
            }
            MovementHandler.newHoldPoint(this.gameObject);
            gameObject.transform.DOLocalMove(MovementHandler.GetObjectPosition(this.gameObject), 0.5f);

            ResultHandler.CheckResult();
        }
    }
Example #2
0
    public static void newHoldPoint(GameObject obj)
    {
        Vector2 originalVectorPosition = FieldContainer.GetFieldElementByGameObject(obj).Coordinate;
        Vector2 newVectorPosition      = FieldContainer.GetFieldElementByGameObject(obj).Coordinate;
        float   distance  = Vector2.Distance(FieldContainer.GetFieldElementByGameObject(obj).Coordinate, (Vector2)obj.transform.localPosition);
        bool    isChanged = false;

        foreach (FieldElement field in FieldContainer.GetCollection())
        {
            if (field.isFree)
            {
                float tempDistance = Vector2.Distance(field.Coordinate, (Vector2)obj.transform.localPosition);

                if (tempDistance <= distance)
                {
                    newVectorPosition = field.Coordinate;
                    isChanged         = true;
                }
            }
        }
        FieldContainer.SetNewCoordinates(obj, newVectorPosition);

        if (isChanged)
        {
            FieldContainer.GetFreeFieldElement().Coordinate = originalVectorPosition;
        }
    }