try to do vision zombie
This commit is contained in:
parent
adc2d44243
commit
4c415fc4f5
3 changed files with 38 additions and 13 deletions
|
@ -7,23 +7,27 @@ using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using DangerousD.GameCore.Managers;
|
||||||
|
|
||||||
namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
{
|
{
|
||||||
public class Zombie : CoreEnemy
|
public class Zombie : CoreEnemy
|
||||||
{
|
{
|
||||||
private bool isGoRight = true;
|
private bool isGoRight = true;
|
||||||
int leftBorder;
|
float leftBorder;
|
||||||
int rightBorder;
|
float rightBorder;
|
||||||
bool isAttaking = false;
|
bool isAttaking = false;
|
||||||
|
bool isTarget = false;
|
||||||
|
PhysicsManager physicsManager;
|
||||||
public Zombie(Vector2 position) : base(position)
|
public Zombie(Vector2 position) : base(position)
|
||||||
{
|
{
|
||||||
Width = 72;
|
Width = 48;
|
||||||
Height = 120;
|
Height = 80;
|
||||||
monster_speed = 3;
|
monster_speed = 3;
|
||||||
name = "Zombie";
|
name = "Zombie";
|
||||||
leftBorder = (int)position.X - 60;
|
leftBorder = (int)position.X - 60;
|
||||||
rightBorder = (int)position.X + 120;
|
rightBorder = (int)position.X + 120;
|
||||||
|
physicsManager = new PhysicsManager();
|
||||||
}
|
}
|
||||||
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "ZombieMoveRight", "ZombieMoveLeft", "ZombieRightAttack", "ZombieLeftAttack" }, "ZombieMoveLeft");
|
protected override GraphicsComponent GraphicsComponent { get; } = new(new List<string> { "ZombieMoveRight", "ZombieMoveLeft", "ZombieRightAttack", "ZombieLeftAttack" }, "ZombieMoveLeft");
|
||||||
|
|
||||||
|
@ -31,6 +35,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
{
|
{
|
||||||
if (!isAttaking)
|
if (!isAttaking)
|
||||||
{
|
{
|
||||||
|
Target();
|
||||||
Move(gameTime);
|
Move(gameTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,5 +111,25 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
|
||||||
}
|
}
|
||||||
base.OnCollision(gameObject);
|
base.OnCollision(gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Target()
|
||||||
|
{
|
||||||
|
if(physicsManager.RayCast(this, AppManager.Instance.GameManager.players[0]) == null)
|
||||||
|
{
|
||||||
|
if(isGoRight && this._pos.X <= AppManager.Instance.GameManager.players[0].Pos.X)
|
||||||
|
{
|
||||||
|
isTarget = true;
|
||||||
|
leftBorder = Pos.X - 10;
|
||||||
|
rightBorder = Pos.X + AppManager.Instance.GameManager.players[0].Pos.X;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if(!isGoRight && this._pos.X >= AppManager.Instance.GameManager.players[0].Pos.X)
|
||||||
|
{
|
||||||
|
isTarget = true;
|
||||||
|
rightBorder = Pos.X + 10;
|
||||||
|
leftBorder = AppManager.Instance.GameManager.players[0].Pos.X;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,21 +11,21 @@ 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(250, 128));
|
||||||
var Frank = new Frank(new Vector2(384, 128));
|
//var Frank = new Frank(new Vector2(384, 128));
|
||||||
|
|
||||||
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));
|
||||||
var Werewolf = new Werewolf(new Vector2(640, 0));
|
//var Werewolf = new Werewolf(new Vector2(640, 0));
|
||||||
var Ghost = new Ghost(new Vector2(730, 0));
|
//var Ghost = new Ghost(new Vector2(730, 0));
|
||||||
var FrankBalls = new FrankBalls(new Vector2(Frank.Pos.X, Frank.Pos.Y));
|
//var FrankBalls = new FrankBalls(new Vector2(Frank.Pos.X, Frank.Pos.Y));
|
||||||
|
|
||||||
new GrassBlock(new Vector2(0, 224));
|
new GrassBlock(new Vector2(0, 224));
|
||||||
for (int i = 0; i < 50; i++)
|
for (int i = 0; i < 50; i++)
|
||||||
{
|
{
|
||||||
new GrassBlock(new Vector2(i*32, 256));
|
new GrassBlock(new Vector2(i*32, 256));
|
||||||
}
|
}
|
||||||
new GrassBlock(new Vector2(500, 224));
|
//new GrassBlock(new Vector2(500, 224));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,7 @@ namespace DangerousD.GameCore.Managers
|
||||||
|
|
||||||
Rectangle rectangle;
|
Rectangle rectangle;
|
||||||
Vector2 distance = entity1.Pos - entity2.Pos;
|
Vector2 distance = entity1.Pos - entity2.Pos;
|
||||||
rectangle = new Rectangle((int)entity1.Pos.X, (int)entity1.Pos.Y, entity2.Width, entity2.Height);
|
rectangle = new Rectangle((int)entity1.Pos.X, (int)entity1.Pos.Y - 5, entity2.Width, entity2.Height);
|
||||||
GameObject gameObject = null;
|
GameObject gameObject = null;
|
||||||
double length = distance.Length();
|
double length = distance.Length();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue