add CheckRectangle method and little changes in monsters
This commit is contained in:
parent
0ad20e3638
commit
55a585eeb0
7 changed files with 36 additions and 4 deletions
|
@ -13,10 +13,15 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
internal class Frank : CoreEnemy
|
internal class Frank : CoreEnemy
|
||||||
{
|
{
|
||||||
private bool isGoRight = false;
|
private bool isGoRight = false;
|
||||||
|
private int leftBoarder;
|
||||||
|
private int rightBoarder;
|
||||||
|
|
||||||
public Frank(Vector2 position) : base(position)
|
public Frank(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
Width = 112;
|
Width = 112;
|
||||||
Height = 160;
|
Height = 160;
|
||||||
|
leftBoarder = 50;
|
||||||
|
rightBoarder = 500;
|
||||||
GraphicsComponent.StartAnimation("FrankMoveLeft");
|
GraphicsComponent.StartAnimation("FrankMoveLeft");
|
||||||
monster_speed = 1;
|
monster_speed = 1;
|
||||||
name = "Frank";
|
name = "Frank";
|
||||||
|
|
|
@ -23,6 +23,11 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
|
|
||||||
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "BallMoveRight" }, "BallMoveRight");
|
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "BallMoveRight" }, "BallMoveRight");
|
||||||
|
|
||||||
|
public override void Update(GameTime gameTime)
|
||||||
|
{
|
||||||
|
|
||||||
|
base.Update(gameTime);
|
||||||
|
}
|
||||||
public override void Attack()
|
public override void Attack()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
webLength++;
|
webLength++;
|
||||||
_pos.Y += 25;
|
_pos.Y += 25;
|
||||||
web.Height = webLength * 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;
|
delay = 0;
|
||||||
if (webLength == 4)
|
if (webLength == 4)
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
webLength--;
|
webLength--;
|
||||||
_pos.Y -= 25;
|
_pos.Y -= 25;
|
||||||
web.Height = webLength * 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;
|
delay = 0;
|
||||||
if (webLength == 0)
|
if (webLength == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,6 +16,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
int leftBorder;
|
int leftBorder;
|
||||||
int rightBorder;
|
int rightBorder;
|
||||||
bool isAttaking = false;
|
bool isAttaking = false;
|
||||||
|
|
||||||
public Zombie(Vector2 position) : base(position)
|
public Zombie(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
Width = 72;
|
Width = 72;
|
||||||
|
|
|
@ -11,8 +11,8 @@ namespace DangerousD.GameCore.Levels
|
||||||
public void InitLevel()
|
public void InitLevel()
|
||||||
{
|
{
|
||||||
new Player(new Vector2(80,0));
|
new Player(new Vector2(80,0));
|
||||||
var Zombie = new Zombie(new Vector2(140, 128));
|
//var Zombie = new Zombie(new Vector2(140, 128));
|
||||||
var Frank = new Frank(new Vector2(384, 128));
|
var Frank = new Frank(new Vector2(384, 0));
|
||||||
|
|
||||||
var Spider = new Spider(new Vector2(112, 0));
|
var Spider = new Spider(new Vector2(112, 0));
|
||||||
var FlameSkull = new FlameSkull(new Vector2(512, 0));
|
var FlameSkull = new FlameSkull(new Vector2(512, 0));
|
||||||
|
|
|
@ -20,9 +20,13 @@ namespace DangerousD.GameCore
|
||||||
public PhysicsManager physicsManager;
|
public PhysicsManager physicsManager;
|
||||||
public List<Player> players;
|
public List<Player> players;
|
||||||
public List<GameObject> otherObjects = new();
|
public List<GameObject> otherObjects = new();
|
||||||
|
|
||||||
|
public List<GameObject> GetAllGameObjects { get; private set; }
|
||||||
public Player GetPlayer1 { get; private set; }
|
public Player GetPlayer1 { get; private set; }
|
||||||
public GameManager()
|
public GameManager()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
GetAllGameObjects = new List<GameObject>();
|
||||||
livingEntities = new List<LivingEntity>();
|
livingEntities = new List<LivingEntity>();
|
||||||
mapObjects = new List<MapObject>();
|
mapObjects = new List<MapObject>();
|
||||||
entities = new List<Entity>();
|
entities = new List<Entity>();
|
||||||
|
@ -34,6 +38,7 @@ namespace DangerousD.GameCore
|
||||||
|
|
||||||
internal void Register(GameObject gameObject)
|
internal void Register(GameObject gameObject)
|
||||||
{
|
{
|
||||||
|
GetAllGameObjects.Add(gameObject);
|
||||||
if (gameObject is Player)
|
if (gameObject is Player)
|
||||||
{
|
{
|
||||||
livingEntities.Add(gameObject as LivingEntity);
|
livingEntities.Add(gameObject as LivingEntity);
|
||||||
|
|
|
@ -206,5 +206,21 @@ namespace DangerousD.GameCore.Managers
|
||||||
}
|
}
|
||||||
return null;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Reference in a new issue