Пример #1
0
        private void setPlayerPos(int gridStartPos)
        {
            playerTileAnimOverlay = new PlayerUserControl();
            playerTileAnimOverlay.UpdateDirection(true);
            playerTile        = new Rectangle();
            playerTile.Height = tileSize;
            playerTile.Width  = tileSize;
            Grid.SetColumn(playerTile, 0);
            Grid.SetRow(playerTile, 0);

            Grid.SetZIndex(playerTile, 10); //set the layering position of the playerTile - can use Grid.SetZIndex or Canvas.SetZIndex(object,int layer)
            Grid.SetZIndex(playerTileAnimOverlay, 11);


            //------------------------------------------------------------------------------------------------
            //-------------------------------|           PLAYER 1             |-------------------------------
            //------------------------------------------------------------------------------------------------
            if (gridStartPos == 0)
            {
                relativePosition = new Point(64, 64);

                playerColour = Colors.Silver;
                playerImage  = "PlayerRight1.png";
                Debug.WriteLine("%%% Player {0}: player X: {1}, player Y: {2} /n", gridStartPos + 1, playerX, playerY);
            }
            //------------------------------------------------------------------------------------------------
            //-------------------------------|           PLAYER 2             |-------------------------------
            //------------------------------------------------------------------------------------------------
            else if (gridStartPos == 1)
            {
                if (GameWindow.ReturnNumberOfPlayer() == 6)
                {
                    // Become PLAYER 3
                    relativePosition = new Point(1344, 384);

                    playerImage = "PlayerRight1.png";
                    playerTileAnimOverlay.UpdateDirection(false);
                }
                else
                {
                    // Stay as PLAYER 2
                    relativePosition = new Point(1344, 64);

                    playerImage = "PlayerRight1.png";
                }
                playerColour = Colors.Red;
                Debug.WriteLine("%%% Player {0}: player X: {1}, player Y: {2} /n", gridStartPos + 1, playerX, playerY);
            }
            //------------------------------------------------------------------------------------------------
            //-------------------------------|           PLAYER 3             |-------------------------------
            //------------------------------------------------------------------------------------------------
            else if (gridStartPos == 2)
            {
                if (GameWindow.ReturnNumberOfPlayer() == 6)
                {
                    // Becomes PLAYER 5
                    relativePosition = new Point(64, 704);

                    playerImage = "PlayerRight1.png";
                }
                else
                {
                    // Stay as PLAYER 3
                    relativePosition = new Point(1344, 704);

                    playerImage = "PlayerRight1.png";
                }
                playerColour = Colors.Blue;
                Debug.WriteLine("%%% Player {0}: player X: {1}, player Y: {2} /n", gridStartPos + 1, playerX, playerY);
            }
            //------------------------------------------------------------------------------------------------
            //-------------------------------|           PLAYER 4             |-------------------------------
            //------------------------------------------------------------------------------------------------
            else if (gridStartPos == 3)
            {
                if (GameWindow.ReturnNumberOfPlayer() == 6)
                {
                    // BECOMES PLAYER 6
                    relativePosition = new Point(64, 384);
                    playerImage      = "PlayerRight1.png";
                }
                else
                {
                    // Stay as PLAYER 4
                    relativePosition = new Point(64, 704);

                    playerImage = "PlayerRight1.png";
                }
                Debug.WriteLine("%%% Player {0}: player X: {1}, player Y: {2} /n", gridStartPos + 1, playerX, playerY);
                playerColour = Colors.Yellow;
            }
            //------------------------------------------------------------------------------------------------
            //-------------------------------|           PLAYER 5             |-------------------------------
            //------------------------------------------------------------------------------------------------
            else if (gridStartPos == 4)
            {
                relativePosition = new Point(1344, 64);

                playerColour = (Color)ColorConverter.ConvertFromString("#FFAC02FB");
                playerImage  = "PlayerRight1.png";
                Debug.WriteLine("%%% Player {0}: player X: {1}, player Y: {2} /n", gridStartPos + 1, playerX, playerY);
            }
            //------------------------------------------------------------------------------------------------
            //-------------------------------|           PLAYER 6             |-------------------------------
            //------------------------------------------------------------------------------------------------
            else if (gridStartPos == 5)
            {
                relativePosition = new Point(1344, 704);

                playerColour = Colors.Green;
                playerImage  = "PlayerRight1.png";
                //Debug.WriteLine("%%% Player {0}: player X: {1}, player Y: {2} /n", gridStartPos + 1, playerX, playerY);
            }

            else
            {
                return;
            }


            // Update the player's position in the list
            for (int i = 0; i < GameWindow.ReturnPlayerList().Count; i++)
            {
                if (GameWindow.ReturnPlayerList()[i].playerName == playerName)
                {
                    GameWindow.ReturnPlayerList()[i].playerPosition = relativePosition;
                    MessageBox.Show(string.Format("{0} found at position: {1}.", playerName, relativePosition));
                }
            }

            //playerTile.Fill = new ImageBrush(new BitmapImage(new Uri(@"./Resources/" + playerImage, UriKind.Relative)));
            playerX         = (int)relativePosition.X / tileSize;
            playerY         = (int)relativePosition.Y / tileSize;
            playerTile.Fill = new SolidColorBrush(Colors.Transparent);
            localGameGrid.Children.Add(playerTileAnimOverlay);
            localGameGrid.Children.Add(playerTile);
        }
Пример #2
0
        public void PlayerMoveToCell()
        {
            playerDirection();

            relativePosition = pathCells[0].TransformToAncestor(localGameGrid).Transform(new Point(0, 0));
            //MessageBox.Show(String.Format("MY NEW POINTS ARE X: {0}, Y: {1} ", relativePosition.X, relativePosition.Y));
            TranslateTransform translateTransform1 = new TranslateTransform(relativePosition.X, relativePosition.Y);

            playerTileAnimOverlay.RenderTransform = translateTransform1;
            playerTile.RenderTransform            = translateTransform1;


            // Update the player's position in the list
            for (int i = 0; i < GameWindow.ReturnPlayerList().Count; i++)
            {
                if (GameWindow.ReturnPlayerList()[i].playerName == playerName)
                {
                    GameWindow.ReturnPlayerList()[i].playerPosition = relativePosition;
                    Console.WriteLine(string.Format("{0} found at position: {1} {2}.", playerName, relativePosition.X / 64, relativePosition.Y / 64));

                    // Prevent players from occupying the same tile.
                    //
                    if (relativePosition == GameWindow.ReturnPlayerList()[i].playerPosition && GameWindow.ReturnPlayerList()[i].playerName != playerName)
                    {
                        return;
                    }
                }
            }



            //Debug.WriteLine("New Player x = {0}, New Player y = {1}", playerX, playerY);



            localGameGrid.Children.Remove(playerTile);
            localGameGrid.Children.Remove(playerTileAnimOverlay);
            localGameGrid.Children.Add(playerTileAnimOverlay);
            localGameGrid.Children.Add(playerTile);

            playerX = Convert.ToInt32(relativePosition.X) / tileSize;
            playerY = Convert.ToInt32(relativePosition.Y) / tileSize;

            pathCells.RemoveAt(0);
        }