示例#1
0
文件: Form1.cs 项目: Dino1992/Game
        private void InitializePlayers()
        {
            enemies = new List<Player>();
            allplayers = new List<Player>();
            user = new PlayerUser(pictureBox6, "Эльф", Weapon.Random());
            //players.Add( user );
            gameRunning = true;

            tableLayoutPanel1.MouseClick += user.MouseClick;
            user.mapX = MapX2Cell;
            user.mapY = MapY2Cell;
            user.add = CheckCollisionAndAddRectangles;
            user.getPlayer = GetPlayerAtCell;

            allplayers.Add(user);
            enemies.Add( new PlayerAI( pictureBox1,  "Орк",    Weapon.Random() ));
            enemies.Add(new PlayerAI(  pictureBox2,  "Орк враг", Weapon.Random()));
            enemies.Add(new PlayerAI(  pictureBox3,  "Орк маг",   Weapon.Random()));
            enemies.Add(new PlayerAI(  pictureBox4,  "Орк убийца",   Weapon.Random()));
            enemies.Add(new PlayerAI(  pictureBox5,  "Орк кровопийца",     Weapon.Random()));
            allplayers.AddRange(enemies);

            foreach (Player pl in enemies)
            {
                pl.move += MovePlayer;
                pl.Picture.MouseClick += user.MouseClick;
                pl.getUserInRadius = GetUserInRadius;
                pl.shoot += Shot;
            }

            tableLayoutPanel1.Paint += DrawElements;

            RandomSpawn();

            context = BufferedGraphicsManager.Current;
            grafx = context.Allocate(tableLayoutPanel1.CreateGraphics(),
                 new Rectangle(0, 0, tableLayoutPanel1.Width, tableLayoutPanel1.Height));
            eventArgs = new PaintEventArgs(grafx.Graphics, tableLayoutPanel1.Bounds);
        }
示例#2
0
文件: Form1.cs 项目: Dino1992/Game
        private void CheckCollisionAndAddRectangles(PlayerUser user)
        {
            userMoveRectengles.Clear();
            userShotRectengles.Clear();

            if (user.NextMoveType == MoveType.Move)
            {
                bool isOnPlayer = false;

                foreach(var player in enemies)
                {
                    if(user.Y + user.NextDirectionY == player.Y &&
                        user.X + user.NextDirectionX == player.X )
                    {
                        isOnPlayer = true;
                        break;
                    }
                }

                if (!isOnPlayer)
                    userMoveRectengles.Add(CellCoords(user.Y + user.NextDirectionY, user.X + user.NextDirectionX));
                else
                {
                    user.NextDirectionY = user.NextDirectionX = 0;
                }

            }
            else
            {
                int dx = Math.Sign(user.NextDirectionX);
                int dy = Math.Sign(user.NextDirectionY);

                int count =  Math.Abs(user.NextDirectionX);
                if (count==0)
                    count = Math.Abs(user.NextDirectionY);
                for (int i = 1; i < count+1; i++)
                {
                    userShotRectengles.Add(CellCoords(user.Y + dy * i, user.X + dx * i));
                }
            }
        }