Esempio n. 1
0
    bool Grab()
    {
        foreach (Collider2D near in Physics2D.OverlapCircleAll(body.position, grabRange))
        {
            if (near.gameObject == gameObject)
            {
                continue;
            }
            Grabbable grabbable = near.GetComponent <Grabbable>();
            if (grabbable && !grabbable.IsGrabbed)
            {
                Debug.Log("Grabbing " + grabbable);
                GrabThrow otherGrabThrow = near.GetComponent <GrabThrow>();
                if (!otherGrabThrow || otherGrabThrow.Grabbed != gameObject)
                {
                    Grabbed = near.gameObject;
                    Grabbed.transform.parent        = transform;
                    Grabbed.transform.localPosition = new Vector2(carryOffsetX * move.Facing, carryOffsetY);

                    grabbable.IsGrabbed         = true;
                    grabbedBody                 = near.GetComponent <Rigidbody2D>();
                    grabbedBody.angularVelocity = 0;
                    grabbedBody.simulated       = false;
                    return(true);
                }
            }
        }
        return(false);
    }
Esempio n. 2
0
    void Start()
    {
        body         = GetComponent <Rigidbody2D>();
        sprite       = GetComponent <SpriteRenderer>();
        grab         = GetComponent <GrabThrow>();
        groundedMask = LayerMask.GetMask(new string[] { "Default" });
        audioSource  = GetComponent <AudioSource>();

        if (PlayerNum == 1)
        {
            controllerNum = GlobalInput.Player1Controller;
            if (controllerNum == -1)
            {
                controllerNum = 1;                 // Default controller number for debugging.
            }
        }
        else
        {
            controllerNum = GlobalInput.Player2Controller;
            if (controllerNum == -1)
            {
                controllerNum = 2;                 // Default controller number for debugging.
            }
        }

        Sprite selectedSprite = sprite.sprite;

        if (PlayerNum == 1)
        {
            if (GlobalInput.Player1DogType == GlobalInput.DogType.Corgi)
            {
                selectedSprite = corgiSprite;
            }
            else if (GlobalInput.Player1DogType == GlobalInput.DogType.Husky)
            {
                selectedSprite = huskySprite;
            }
        }
        else
        {
            if (GlobalInput.Player2DogType == GlobalInput.DogType.Corgi)
            {
                selectedSprite = corgiSprite;
            }
            else if (GlobalInput.Player2DogType == GlobalInput.DogType.Husky)
            {
                selectedSprite = huskySprite;
            }
        }

        this.sprite.sprite = selectedSprite;
    }
Esempio n. 3
0
 public void Enter()
 {
     levelSndInstance = levelSnd.CreateInstance();
     //levelSndInstance.Play();
     rectangles = state.levelManager.levels[2].rectangles;
     //gate
     gateRectangle = new RectangleObjects(336, 24, 96, 72);
     rectangles.Add(gateRectangle);
     //reset
     resetRectangle = new Rectangle(336, 662, 98, 10);
     collide        = new Collision(rectangles, actors, state);
     grabThrow      = new GrabThrow(actors);
     patrol         = new Patroling(rectangles, actors, resetRectangle);
     rockHit        = new RockHit(actors, grabThrow);
     checkWin       = new CheckWin(actors);
     pursue         = new Pursue(actors, state);
 }