Example #1
0
    public virtual bool insideSprite(Camera camera, Sprite sprite, ICollection<TouchPhase> phases)
    {
        if (input.touchCount == 0) {
            return false;
        }

        if (!touchesFor(phases).Any(touch => sprite.Contains(camera, touch.position))) {
            return false;
        }

        var spritesInScene = gameObjectFinder.allSprites();

        foreach (var touch in touchesFor(phases)) {
            if (!sprite.Contains(camera, touch.position)) {
                continue;
            }

            var topSprite = sprite;
            foreach (var spriteInScene in spritesInScene) {
                if (spriteInScene.Contains(camera, touch.position)
                    && spriteInScene.worldPosition.z < sprite.worldPosition.z
                    && (spriteInScene.getAlphaAtScreenPosition(touch.position) > OPAQUE)) {
                    topSprite = spriteInScene;
                }
            }
            if (topSprite == sprite
                && topSprite.getAlphaAtScreenPosition(touch.position) > OPAQUE) {
                return true;
            }
        }

        return false;
    }
Example #2
0
    public bool insideSprite(Camera camera, Sprite sprite, ICollection<TouchPhase> phases)
    {
        foreach (var touch in touchesFor(phases)) {
            if (sprite.Contains(camera, touch.position))
                return true;
        }

        return false;
    }
Example #3
0
    public virtual bool insideSprite(Camera camera, Sprite sprite, ICollection <TouchPhase> phases)
    {
        if (input.touchCount == 0)
        {
            return(false);
        }

        if (!touchesFor(phases).Any(touch => sprite.Contains(camera, touch.position)))
        {
            return(false);
        }

        var spritesInScene = gameObjectFinder.allSprites();

        foreach (var touch in touchesFor(phases))
        {
            if (!sprite.Contains(camera, touch.position))
            {
                continue;
            }

            var topSprite = sprite;
            foreach (var spriteInScene in spritesInScene)
            {
                if (spriteInScene.Contains(camera, touch.position) &&
                    spriteInScene.worldPosition.z < sprite.worldPosition.z &&
                    (spriteInScene.getAlphaAtScreenPosition(touch.position) > OPAQUE))
                {
                    topSprite = spriteInScene;
                }
            }
            if (topSprite == sprite &&
                topSprite.getAlphaAtScreenPosition(touch.position) > OPAQUE)
            {
                return(true);
            }
        }

        return(false);
    }
Example #4
0
 /// if the sprite was dragged, return move amount in screen coordinates.
 /// return the zero vector if dragging happened outside of the sprite
 public Vector3 movementIfDragged()
 {
     if (input.touchCount > 0 && input.hasMoved(0))
     {
         var touch = input.GetTouch(0);
         if (!sprite.Contains(Camera.main, touch.position))
         {
             return(Vector3.zero);
         }
         return(new Vector3(touch.deltaPosition.x, touch.deltaPosition.y, 0f));
     }
     return(Vector3.zero);
 }
Example #5
0
        private IEnumerator AnimateSprite(Sprite desiredFinalSprite)
        {
            Sprite currentSprite = (Sprite)spritehandler.CataloguePage;

            if (desiredFinalSprite == currentSprite)
            {
                yield break;
            }

            var offSprites        = new Sprite[] { Sprite.Off, Sprite.InOff, Sprite.OutOff };
            var transitionSprites = new Sprite[] { Sprite.OutStarting, Sprite.OutStopping, Sprite.InStarting, Sprite.InStopping };
            var operatingSprites  = new Sprite[] { Sprite.Out, Sprite.In };

            // Run the animatable transitions.
            if (desiredFinalSprite == Sprite.Off && operatingSprites.Contains(currentSprite))
            {
                // Bring impeller to a standstill from operation.
                ToOffFrom(currentSprite);
            }
            else if (operatingSprites.Contains(desiredFinalSprite) &&
                     (offSprites.Contains(currentSprite) || transitionSprites.Contains(currentSprite)))
            {
                // Bring impeller to operation from a standstill.
                FromOffTo(desiredFinalSprite);
            }
            else if (operatingSprites.Contains(desiredFinalSprite) && operatingSprites.Contains(currentSprite))
            {
                // Bring impeller to a standstill before reversing direction.
                yield return(FromTo(currentSprite, desiredFinalSprite));
            }
            else
            {
                // No transitions; just set instantly.
                spritehandler.ChangeSprite((int)desiredFinalSprite);
            }
        }
Example #6
0
 public bool guyContains(Vector2 position)
 {
     return(guyLeft.Contains(Camera.main, position) ||
            guyRight.Contains(Camera.main, position));
 }