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); }
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)); } } }