Пример #1
0
 public override void EventPlacedShade(BehaviourBall ball)
 {
     shakeAmplitude += shakeAmplitudeIncrease;
     if (--weakBreak == 0)
     {
         StartCoroutine(AnimationDestroyByBreak());
     }
 }
Пример #2
0
    private IEnumerator AnimationTeleportToTile(BehaviourBall ball, int tile)
    {
        Image image = ball.GetComponent <Image>();

        image.color = new Color(image.color.r, image.color.g, image.color.b, 1);
        Color initialColor  = image.color;
        Color teleportColor = image.color;

        teleportColor = new Color(teleportColor.r, teleportColor.g, teleportColor.b, 1);

        ball.frozen = true;

        float elapsed = 0f;

        while (image.color != teleportColor)
        {
            yield return(new WaitForSeconds(0.01f));

            elapsed    += Time.deltaTime;
            image.color = Color.Lerp(image.color, teleportColor, elapsed / (teleportDelay * 0.5f));
        }
        elapsed = 0f;

        teleportColor = new Color(teleportColor.r, teleportColor.g, teleportColor.b, 0);
        while (image.color.a > 0)
        {
            yield return(new WaitForSeconds(0.01f));

            elapsed    += Time.deltaTime;
            image.color = Color.Lerp(image.color, teleportColor, elapsed / (teleportDelay * 0.5f));
        }
        ball.state = BehaviourBall.stateUndecided;

        int x;

        do
        {
            x = UnityEngine.Random.Range(0, (int)gameManager.loadedLevel.size.x);
        }while (x == (int)position.x);

        int y;

        do
        {
            y = UnityEngine.Random.Range(0, (int)gameManager.loadedLevel.size.y);
        }while (y == (int)position.y);

        ball.EventTeleportTo(gameManager.loadedLevel.channels[y, x].transform);

        image.color = initialColor;
        ball.frozen = true;
    }
Пример #3
0
    public Ball(GameManager gameManager, LevelManager levelManager, Level level, Vector2 position)
    {
        gameObject     = new GameObject("Ball", new Type[] { typeof(RectTransform), typeof(CanvasRenderer), typeof(Image), typeof(BehaviourBall) });
        gameObject.tag = "Ball";
        BehaviourBall ballBehaviour = gameObject.GetComponent <BehaviourBall>();

        ballBehaviour.Initialize(gameManager, levelManager, position);

        Image image = gameObject.GetComponent <Image>();

        image.sprite = levelManager.spriteBalls;
        image.color  = levelManager.colorBall;

        Transform parent = level.channels[(int)position.y, (int)position.x].transform;

        gameObject.transform.SetParent(parent);
        gameObject.transform.localPosition = new Vector3(0, 0, 0);

        gameObject.GetComponent <RectTransform>().sizeDelta = new Vector2(level.channelSize / 4, level.channelSize / 4);
    }
Пример #4
0
 public override void EventReachedOrigin(BehaviourBall ball)
 {
     base.EventReachedOrigin(ball);
     StartCoroutine(AnimationTeleportToTile(ball, 0));
 }
Пример #5
0
 public virtual void EventPlacedShade(BehaviourBall ball)
 {
 }
Пример #6
0
 public virtual void EventReachedOrigin(BehaviourBall ball)
 {
     balls--;
 }
Пример #7
0
 public virtual void EventEnteredChannel(BehaviourBall ball)
 {
     balls++;
 }
Пример #8
0
 public override void EventEnteredChannel(BehaviourBall ball)
 {
     base.EventEnteredChannel(ball);
     //Shuffle adjacent tiles
 }
Пример #9
0
 public override void EventEnteredChannel(BehaviourBall ball)
 {
     base.EventEnteredChannel(ball);
     ball.effectSpeedElapsed = speedDuration;
 }