Пример #1
0
    void Start()
    {
        // Set classes.
        rb2d = GetComponent <Rigidbody2D>();
        //anim = GetComponent<Animator>();
        scs = GetComponent <SideCollision>();

        respawnPosition = transform.position;
        levelManager    = FindObjectOfType <LevelManager>();
        playerSprite    = GetComponent <SpriteRenderer>();
    }
Пример #2
0
        private void Moving(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.Right:
                CurrentLocation(e);
                if (Pacman.Right < Win.Width)
                {
                    if (IsCollisionGhost())
                    {
                        break;
                    }

                    if (IsFindTreasure())
                    {
                        SetCollapsedImage(Treasure);
                        SetVisibleImage(Exit);
                        exitOpen = true;
                    }

                    if (exitOpen && IsGetExit())
                    {
                        SetVisibleImage(Victory);
                    }

                    if (IsCollisionWall() && SideCollision.Equals(SideCollision.Right))
                    {
                        while (IsCollisionWall())
                        {
                            AnimationX = new DoubleAnimation(Pacman.X--, TimeSpan.FromMilliseconds(Speed));
                            Trans.BeginAnimation(TranslateTransform.XProperty, AnimationX);
                            AnimateY();
                        }
                    }
                    else
                    {
                        SideCollision = SideCollision.Right;
                        AnimationX    = new DoubleAnimation(Pacman.X + Step, TimeSpan.FromMilliseconds(Speed));
                        Trans.BeginAnimation(TranslateTransform.XProperty, AnimationX);
                        AnimateY();
                    }
                }
                break;

            case Key.Left:
                CurrentLocation(e);
                if (Pacman.Left > 0)
                {
                    if (IsCollisionGhost())
                    {
                        break;
                    }

                    if (IsFindTreasure())
                    {
                        SetCollapsedImage(Treasure);
                        SetVisibleImage(Exit);
                        exitOpen = true;
                    }

                    if (exitOpen && IsGetExit())
                    {
                        SetVisibleImage(Victory);
                    }

                    if (IsCollisionWall() && SideCollision.Equals(SideCollision.Left))
                    {
                        while (IsCollisionWall())
                        {
                            AnimationX = new DoubleAnimation(Pacman.X++, TimeSpan.FromMilliseconds(Speed));
                            Trans.BeginAnimation(TranslateTransform.XProperty, AnimationX);
                            AnimateY();
                        }
                    }
                    else
                    {
                        SideCollision = SideCollision.Left;
                        AnimationX    = new DoubleAnimation(Pacman.X - Step, TimeSpan.FromMilliseconds(Speed));
                        Trans.BeginAnimation(TranslateTransform.XProperty, AnimationX);
                        AnimateY();
                    }
                }
                break;

            case Key.Up:
                CurrentLocation(e);
                if (Pacman.Top > 0)
                {
                    if (IsCollisionGhost())
                    {
                        break;
                    }

                    if (IsFindTreasure())
                    {
                        SetCollapsedImage(Treasure);
                        SetVisibleImage(Exit);
                        exitOpen = true;
                    }

                    if (exitOpen && IsGetExit())
                    {
                        SetVisibleImage(Victory);
                    }

                    if (IsCollisionWall() && SideCollision.Equals(SideCollision.Top))
                    {
                        while (IsCollisionWall())
                        {
                            AnimateX();
                            AnimationY = new DoubleAnimation(Pacman.Y++, TimeSpan.FromMilliseconds(Speed));
                            Trans.BeginAnimation(TranslateTransform.YProperty, AnimationY);
                        }
                    }
                    else
                    {
                        SideCollision = SideCollision.Top;
                        AnimateX();
                        AnimationY = new DoubleAnimation(Pacman.Y - Step, TimeSpan.FromMilliseconds(Speed));
                        Trans.BeginAnimation(TranslateTransform.YProperty, AnimationY);
                    }
                }
                break;

            case Key.Down:
                CurrentLocation(e);
                if (Pacman.Bottom < Win.Height - Step * 2)
                {
                    if (IsCollisionGhost())
                    {
                        break;
                    }

                    if (IsFindTreasure())
                    {
                        SetCollapsedImage(Treasure);
                        SetVisibleImage(Exit);
                        exitOpen = true;
                    }

                    if (exitOpen && IsGetExit())
                    {
                        SetVisibleImage(Victory);
                    }

                    if (IsCollisionWall() && SideCollision.Equals(SideCollision.Bottom))
                    {
                        while (IsCollisionWall())
                        {
                            AnimationY = new DoubleAnimation(Pacman.Y--, TimeSpan.FromMilliseconds(Speed));
                            Trans.BeginAnimation(TranslateTransform.YProperty, AnimationY);
                        }
                    }
                    else
                    {
                        SideCollision = SideCollision.Bottom;
                        AnimateX();
                        AnimationY = new DoubleAnimation(Pacman.Y + Step, TimeSpan.FromMilliseconds(Speed));
                        Trans.BeginAnimation(TranslateTransform.YProperty, AnimationY);
                    }
                }
                break;
            }
        }