public void VacuumAllItems()
 {
     foreach (Collider2D itemCol in allItemsColliders)
     {
         ClickableItemBehaviour item = itemCol.GetComponent <ClickableItemBehaviour>();
         item.VacuumTowards(blackHole.transform.position);
     }
 }
    public void ReleaseHeldItem(ClickableItemBehaviour item, Vector3 mousePosition, Vector3 mousePositionAtLastFrame)
    {
        Vector3 newVelocity   = (mousePosition - mousePositionAtLastFrame) / Time.deltaTime;
        Vector2 newVelocity2D = new Vector2(newVelocity.x, newVelocity.y);

        item.GetComponent <Rigidbody2D>().isKinematic = false;
        item.GetComponent <Rigidbody2D>().velocity    = newVelocity2D;
    }
    public ClickableItemBehaviour GetClickedItem(Vector3 mousePosition)
    {
        ClickableItemBehaviour clickedItem = null;
        Vector2 mousePos2D = new Vector2(mousePosition.x, mousePosition.y);

        foreach (Collider2D col in allItemsColliders)
        {
            if (col != null && col.OverlapPoint(mousePos2D))
            {
                clickedItem = col.GetComponent <ClickableItemBehaviour>();
                break;
            }
        }
        return(clickedItem);
    }
Exemple #4
0
 private void HandleMouseRelease(Vector3 mousePosition)
 {
     if (spawnSpellActive)
     {
         GameEngineBehaviour.instance.StopSpawnEffect();
         spawnSpellActive = false;
     }
     else if (holdItem)
     {
         GameEngineBehaviour.instance.ReleaseHeldItem(currentHeldItem, mousePosition, previousMousePosition);
         if (!isDraggingItem)
         {
             GameEngineBehaviour.instance.ComputeClickOnItem(currentHeldItem);
         }
         currentHeldItem = null;
     }
 }
Exemple #5
0
    private void HandleMouseDown(Vector3 mousePosition)
    {
        timeSinceMouseDown    = Time.time;
        positionWhenMouseDown = mousePosition;
        isDraggingItem        = false;

        currentHeldItem = GameEngineBehaviour.instance.GetClickedItem(mousePosition);
        if (currentHeldItem != null)
        {
            // we just clicked on an item
            holdItem = true;
            GameEngineBehaviour.instance.StartHoldingItem(currentHeldItem, mousePosition);
        }
        else
        {
            // no click on item : we start spawn spell
            Vector3 positionInSpace = Camera.main.ScreenToWorldPoint(Input.mousePosition + distanceFromWorld * Vector3.forward);
            GameEngineBehaviour.instance.StartSpawnEffect(positionInSpace);
            spawnSpellActive = true;
        }
    }
 public void ComputeClickOnItem(ClickableItemBehaviour item)
 {
     item.HandleClick();
 }
 public void UpdateHeldItemPosition(ClickableItemBehaviour item, Vector3 mousePosition)
 {
     item.GetComponent <Rigidbody2D>().MovePosition(new Vector2(mousePosition.x, mousePosition.y));
 }
 public void StartHoldingItem(ClickableItemBehaviour item, Vector3 mousePosition)
 {
     item.GetComponent <Rigidbody2D>().isKinematic = true;
 }