public Entity createNPC(Vector2 position, string idModifier = "", NpcLogic.Team team = NpcLogic.Team.None) { var entity = new Entity($"player{idModifier}"); entity.position = position; entity.scale = 2; var dynamic = new Dynamic(150.0f); dynamic.colliderRadius = 10; entity.AddComponent(dynamic); entity.AddComponent(new NpcLogic(4000, 150, team)); var animationController = new DirectionalAnimationControl(); var animationDelay = 200.0f; var moveRight = new Animation(animationDelay); moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_435)); moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_436)); moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_437)); moveRight.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_438)); animationController.animations.Add(DirectionalAnimationControl.Direction.Right, moveRight); var moveLeft = new Animation(animationDelay); moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_439)); moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_440)); moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_441)); moveLeft.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_442)); animationController.animations.Add(DirectionalAnimationControl.Direction.Left, moveLeft); var moveUp = new Animation(animationDelay); moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_431)); moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_432)); moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_433)); moveUp.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_434)); animationController.animations.Add(DirectionalAnimationControl.Direction.Up, moveUp); var moveDown = new Animation(animationDelay); moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_427)); moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_428)); moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_429)); moveDown.AddFrame(spriteSheet.Sprite(mlm_armies.Mlm_armies_430)); animationController.animations.Add(DirectionalAnimationControl.Direction.Down, moveDown); entity.AddComponent(animationController); var animatedSprite = new AnimatedSprite(); animatedSprite.animation = moveDown; entity.AddComponent(animatedSprite); return(entity); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { base.Initialize(); keyboardState = Keyboard.GetState(); entities.Add(entityFactory.createPlayer(new Vector2(Config.ScreenWidth / 2, Config.ScreenHeight / 2))); var teams = new NpcLogic.Team[] { NpcLogic.Team.Red, NpcLogic.Team.Blue }; for (var i = 0; i < 2; i++) { for (var j = 0; j < Config.NumberOfNpcs; j++) { entities.Add(entityFactory.createNPC(new Vector2(500.0f + i * 1000, 400.0f + j * 30.0f), $"player_{i}{j}", teams[i])); } } }