add CheckRectangle method and little changes in monsters

This commit is contained in:
N4K 2023-08-17 12:38:48 +03:00
parent 0ad20e3638
commit 55a585eeb0
7 changed files with 36 additions and 4 deletions

View file

@ -13,10 +13,15 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
internal class Frank : CoreEnemy
{
private bool isGoRight = false;
private int leftBoarder;
private int rightBoarder;
public Frank(Vector2 position) : base(position)
{
Width = 112;
Height = 160;
leftBoarder = 50;
rightBoarder = 500;
GraphicsComponent.StartAnimation("FrankMoveLeft");
monster_speed = 1;
name = "Frank";

View file

@ -23,6 +23,11 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "BallMoveRight" }, "BallMoveRight");
public override void Update(GameTime gameTime)
{
base.Update(gameTime);
}
public override void Attack()
{

View file

@ -46,7 +46,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
webLength++;
_pos.Y += 25;
web.Height = webLength * 25;
web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2, Pos.Y - 25 * webLength));
web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2 + 2, Pos.Y - 25 * webLength));
delay = 0;
if (webLength == 4)
{
@ -59,7 +59,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
webLength--;
_pos.Y -= 25;
web.Height = webLength * 25;
web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2, Pos.Y - 25 * webLength));
web.SetPosition(new Vector2(_pos.X + Width / 2 - web.Width / 2 + 2, Pos.Y - 25 * webLength));
delay = 0;
if (webLength == 0)
{

View file

@ -16,6 +16,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
int leftBorder;
int rightBorder;
bool isAttaking = false;
public Zombie(Vector2 position) : base(position)
{
Width = 72;

View file

@ -11,8 +11,8 @@ namespace DangerousD.GameCore.Levels
public void InitLevel()
{
new Player(new Vector2(80,0));
var Zombie = new Zombie(new Vector2(140, 128));
var Frank = new Frank(new Vector2(384, 128));
//var Zombie = new Zombie(new Vector2(140, 128));
var Frank = new Frank(new Vector2(384, 0));
var Spider = new Spider(new Vector2(112, 0));
var FlameSkull = new FlameSkull(new Vector2(512, 0));

View file

@ -20,9 +20,13 @@ namespace DangerousD.GameCore
public PhysicsManager physicsManager;
public List<Player> players;
public List<GameObject> otherObjects = new();
public List<GameObject> GetAllGameObjects { get; private set; }
public Player GetPlayer1 { get; private set; }
public GameManager()
{
GetAllGameObjects = new List<GameObject>();
livingEntities = new List<LivingEntity>();
mapObjects = new List<MapObject>();
entities = new List<Entity>();
@ -34,6 +38,7 @@ namespace DangerousD.GameCore
internal void Register(GameObject gameObject)
{
GetAllGameObjects.Add(gameObject);
if (gameObject is Player)
{
livingEntities.Add(gameObject as LivingEntity);

View file

@ -206,5 +206,21 @@ namespace DangerousD.GameCore.Managers
}
return null;
}
public List<GameObject> CheckRectangle(Rectangle rectangle, Type type)
{
var gameObjects = AppManager.Instance.GameManager.GetAllGameObjects;
List<GameObject> intersected = new List<GameObject>();
for (int i = 0; i < gameObjects.Count; i++)
{
if (gameObjects[i].GetType() == type)
{
if (gameObjects[i].Rectangle.Intersects(rectangle))
{
intersected.Add(gameObjects[i]);
}
}
}
return intersected;
}
}
}