/// <summary> /// /// </summary> /// <param name="Id"></param> /// <param name="gameTime"></param> private void KeyBoardMove(int Id, GameTime gameTime) { KeyBoardComponent kbc = ComponentManager.Instance.GetEntityComponent <KeyBoardComponent>(Id); PositionComponent p = ComponentManager.Instance.GetEntityComponent <PositionComponent>(Id); PlayerComponent pc = ComponentManager.Instance.GetEntityComponent <PlayerComponent>(Id); VelocityComponent v = ComponentManager.Instance.GetEntityComponent <VelocityComponent>(Id); DirectionComponent dc = ComponentManager.Instance.GetEntityComponent <DirectionComponent>(Id); JumpComponent jump = ComponentManager.Instance.GetEntityComponent <JumpComponent>(Id); p.prevPosition = p.position; if (dc != null && v != null) { v.velocity.X = sideMovement * (int)dc.directio; } if (p != null && v != null && kbc != null && jump != null && dc != null) { if (kbc.state[ActionsEnum.Jump] == ButtonStates.Pressed && !pc.isFalling) { if (dc.directio == Direction.Still) { dc.directio = dc.preDir; } if (v.velocity.Y > -jump.maxJumpHeight) { v.velocity.Y -= jump.jumpHeight; ComponentManager.Instance.AddComponentToEntity(Id, new SoundEffectComponent("jump")); } } v.velocity.Y += gravity * (float)gameTime.ElapsedGameTime.TotalSeconds; p.position += v.velocity * (float)gameTime.ElapsedGameTime.TotalSeconds; } }
void Awake() { controller = GetComponent<ControllerComponent> (); jumper = GetComponent<JumpComponent> (); animator = GetComponent<Animator> (); attacker = GetComponent<AttackComponent> (); }
/// <summary> /// Creates an new Player with Controlls /// </summary> /// <param name="pixlePer"> True if pixelPerfect shall be used </param> /// <param name="GamePade"> True if GamePad the player uses a gamepad </param> /// <param name="PadJump"> Key binding to gamePad </param> /// <param name="Jump"> key binding to keybord </param> /// <param name="position"> Player start Position </param> /// <param name="name"> The name off the player</param> /// <param name="dir"> The players starting direction</param> /// <param name="index"> Playerindex For GamePad </param> /// <returns></returns> public int CreatePlayer(bool pixlePer, bool GamePade, Buttons PadJump, Keys Jump, Vector2 position, string name, Direction dir, PlayerIndex index, Color colour) { SpriteEffects flip; GamePadComponent gam; KeyBoardComponent kcb; int id = ComponentManager.Instance.CreateID(); if (dir == Direction.Left) { flip = SpriteEffects.FlipHorizontally; } else { flip = SpriteEffects.None; } if (GamePade == true) { gam = new GamePadComponent(index); gam.gamepadActions.Add(ActionsEnum.Jump, PadJump); ComponentManager.Instance.AddComponentToEntity(id, gam); } else { kcb = new KeyBoardComponent(); kcb.keyBoardActions.Add(ActionsEnum.Jump, Jump); ComponentManager.Instance.AddComponentToEntity(id, kcb); } DirectionComponent dc = new DirectionComponent(dir); DrawableComponent comp = new DrawableComponent(Game.Instance.GetContent <Texture2D>("Pic/kanin1"), flip); PositionComponent pos = new PositionComponent(position); VelocityComponent vel = new VelocityComponent(new Vector2(200F, 0), 50F); JumpComponent jump = new JumpComponent(300F, 200F); CollisionRectangleComponent CRC = new CollisionRectangleComponent(new Rectangle((int)pos.position.X, (int)pos.position.Y, comp.texture.Width, comp.texture.Height)); CollisionComponent CC = new CollisionComponent(pixlePer); PlayerComponent pc = new PlayerComponent(name); DrawableTextComponent dtc = new DrawableTextComponent(name, Color.Black, Game.Instance.GetContent <SpriteFont>("Fonts/TestFont")); HUDComponent hudc = new HUDComponent(Game.Instance.GetContent <Texture2D>("Pic/PowerUp"), new Vector2(pos.position.X, pos.position.Y)); HUDComponent hudc2 = new HUDComponent(Game.Instance.GetContent <Texture2D>("Pic/PowerUp"), Vector2.One); HealthComponent hc = new HealthComponent(3, false); //AnimationComponent ani = new AnimationComponent(100, 114, comp.texture.Width, comp.texture.Height, 0.2); comp.colour = colour; ComponentManager.Instance.AddComponentToEntity(id, vel); ComponentManager.Instance.AddComponentToEntity(id, comp); ComponentManager.Instance.AddComponentToEntity(id, pos); ComponentManager.Instance.AddComponentToEntity(id, CRC); ComponentManager.Instance.AddComponentToEntity(id, CC); ComponentManager.Instance.AddComponentToEntity(id, pc); ComponentManager.Instance.AddComponentToEntity(id, dtc); ComponentManager.Instance.AddComponentToEntity(id, hudc); ComponentManager.Instance.AddComponentToEntity(id, hc); //ComponentManager.Instance.AddComponentToEntity(id, ani); ComponentManager.Instance.AddComponentToEntity(id, dc); ComponentManager.Instance.AddComponentToEntity(id, jump); return(id); }
private void AddPlayer() { playerID = Game.EntityManager.CreateEntity(); var inputBlock = new ActionComponent(); inputBlock.InitComponent(null); Game.EntityManager.AddComponent(playerID, inputBlock); var form = new FormComponent(); form.InitComponent(playerID, new Vector3(0, 50, 0), "Player", ""); Game.EntityManager.AddComponent(playerID, form); var animComp = new AnimationComponent(); animComp.InitComponent(null); Game.EntityManager.AddComponent(playerID, animComp); var move = new MovementComponent(); move.InitComponent(null); Game.EntityManager.AddComponent(playerID, move); var crouch = new CrouchComponent(); crouch.InitComponent(null); Game.EntityManager.AddComponent(playerID, crouch); var run = new RunComponent(); run.InitComponent(null); Game.EntityManager.AddComponent(playerID, run); var jump = new JumpComponent(); jump.InitComponent(null); Game.EntityManager.AddComponent(playerID, jump); var skill = new SkillComponent(); skill.InitComponent(null); Game.EntityManager.AddComponent(playerID, skill); var health = new HealthComponent() { Damage = 0, DeathType = HealthComponent.DeathTypes.LifeEnded, HP_Max = 50 }; health.InitComponent(null); Game.EntityManager.AddComponent(playerID, health); var menuOptions = new MenuComponent(); menuOptions.InitComponent(null); menuOptions.InitComponent(playerID, "Menu"); Game.EntityManager.AddComponent(playerID, menuOptions); }
void SetupJumpComponent() { var jumpCmp = new JumpComponent() { jumpForce = this.jumpForce }; entityManager.AddComponentData(thisEntity, jumpCmp); }
public virtual void Awake() { jumpComponent = GetComponent <JumpComponent>(); jumpComponent.AddEventListener(this.gameObject); bodyControl = GetComponent <BodyControl>(); bodyControl.AddEventListener(this.gameObject); animationManager = this.transform.Find("BodyContainer/Animations").GetComponent <AnimationManager2D>(); }
public static void SendJumpPacket(JumpComponent jumpComponent) { var jumpPacket = new JumpPacket { SteamId = jumpComponent.Entity.EntityId }; var package = NetworkManager.MessagePackager.Package(jumpPacket); NetworkManager.SendMessage(package); }
/// <summary> /// /// </summary> /// <param name="dir"></param> /// <param name="position"></param> /// <param name="pixlePer"></param> /// <param name="name"></param> /// <returns></returns> public int CreateAIPlayer(Direction dir, Vector2 position, bool pixlePer, string name, Color colour) { SpriteEffects flip; if (dir == Direction.Left) { flip = SpriteEffects.FlipHorizontally; } else { flip = SpriteEffects.None; } DirectionComponent dc = new DirectionComponent(dir); DrawableComponent comp = new DrawableComponent(Game.Instance.GetContent <Texture2D>("Pic/Helmutsh"), flip); PositionComponent pos = new PositionComponent(position); VelocityComponent vel = new VelocityComponent(new Vector2(200F, 0), 50F); JumpComponent jump = new JumpComponent(300F, 50F); CollisionRectangleComponent CRC = new CollisionRectangleComponent(new Rectangle((int)pos.position.X, (int)pos.position.Y, comp.texture.Width, comp.texture.Height)); CollisionComponent CC = new CollisionComponent(pixlePer); DrawableTextComponent dtc = new DrawableTextComponent(name, Color.Yellow, Game.Instance.GetContent <SpriteFont>("Fonts/NewTestFont")); HUDComponent hudc = new HUDComponent(Game.Instance.GetContent <Texture2D>("Pic/PowerUp"), new Vector2(pos.position.X, pos.position.Y)); HUDComponent hudc2 = new HUDComponent(Game.Instance.GetContent <Texture2D>("Pic/PowerUp"), Vector2.One); HealthComponent hc = new HealthComponent(3, false); AnimationComponent ani = new AnimationComponent(75, 75, comp.texture.Width, comp.texture.Height, 0.2); AIComponent ai = new AIComponent(); PlayerComponent play = new PlayerComponent(name); comp.colour = colour; int id = ComponentManager.Instance.CreateID(); ComponentManager.Instance.AddComponentToEntity(id, vel); ComponentManager.Instance.AddComponentToEntity(id, comp); ComponentManager.Instance.AddComponentToEntity(id, pos); ComponentManager.Instance.AddComponentToEntity(id, CRC); ComponentManager.Instance.AddComponentToEntity(id, CC); ComponentManager.Instance.AddComponentToEntity(id, dtc); ComponentManager.Instance.AddComponentToEntity(id, hudc); ComponentManager.Instance.AddComponentToEntity(id, hc); ComponentManager.Instance.AddComponentToEntity(id, ani); ComponentManager.Instance.AddComponentToEntity(id, dc); ComponentManager.Instance.AddComponentToEntity(id, jump); ComponentManager.Instance.AddComponentToEntity(id, play); ComponentManager.Instance.AddComponentToEntity(id, ai); return(id); }
// Update is called once per frame void Update() { if (isLocalPlayer) { if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D)) { WalkComponent.Walk(); } if (Input.GetKey(KeyCode.Space)) { JumpComponent.Jump(); } if (!Input.anyKeyDown && !Input.anyKey) { IdleComponent.Idle(); } if (Input.GetMouseButtonDown(1)) { WeaponComponents[SelectedWeapon].UseWeaponPrimary(); } if (Input.GetMouseButtonDown(2)) { WeaponComponents[SelectedWeapon].UseWeaponSecondary(); } if (Input.GetKey(KeyCode.V)) { //Quick Meele } if (Input.GetKey(KeyCode.Q)) { //Ultimate } if (Input.GetKey(KeyCode.E)) { //PrimaryAbility } if (Input.GetKey(KeyCode.LeftShift)) { //UtilityAbility } if (Input.GetKey(KeyCode.R)) { //Reload } } }
private void SetupCarOnTrack(int gridStartIndex) { Debug.Log("Grid index " + gridStartIndex); var value = SlotLanes.Instance.GridPositions[gridStartIndex]; var pos = value.Start; _instance = PhotonNetwork.Instantiate(_prefabs[gridStartIndex].name, pos.position, Quaternion.identity); _instance.transform.LookAt(value.End); PhotonNetwork.RegisterPhotonView(_instance.GetComponent <PhotonView>()); _rigid = _instance.GetComponent <Rigidbody>(); _move = _instance.AddComponent <MoveComponent>(); _finish = _instance.AddComponent <FinishComponent>(); _control = _instance.AddComponent <ControlComponent>(); _jumpComponent = _instance.AddComponent <JumpComponent>(); _control.Init(this); _finish.Finish += OnFinish; }
protected override void OnUpdate() { Entities.ForEach((InputComponent inputcomponent, JumpComponent ground, TagPlayerComponent tag, MobileInputComponent mInput) => { m_inputComponent = inputcomponent; checkground = ground; }); Entities.ForEach((TagPlatform tag, PlatformEffector2D platformeffector2D, BoxCollider2D collider) => { if (m_inputComponent.Down == true && checkground.canJump == true) //checks to see if the player is pushing down and grounded { collider.enabled = false; } else { collider.enabled |= (m_inputComponent.Down == false && checkground.canJump == true); } }); }
public void update(GameTime gameTime) { Dictionary <int, IComponent> dic = ComponentManager.Instance.GetAllEntitiesAndComponentsWithComponentType <AIComponent>(); if (dic != null) { foreach (var item in dic) { int id = item.Key; PositionComponent pos = ComponentManager.Instance.GetEntityComponent <PositionComponent>(id); VelocityComponent vel = ComponentManager.Instance.GetEntityComponent <VelocityComponent>(id); DirectionComponent dir = ComponentManager.Instance.GetEntityComponent <DirectionComponent>(id); JumpComponent jump = ComponentManager.Instance.GetEntityComponent <JumpComponent>(id); PlayerComponent pc = ComponentManager.Instance.GetEntityComponent <PlayerComponent>(id); DirectionComponent dc = ComponentManager.Instance.GetEntityComponent <DirectionComponent>(id); if (vel != null) { if (AI(gameTime, id)) { if (dc.directio == Direction.Still) { dc.directio = dc.preDir; } if (vel.velocity.Y > -jump.maxJumpHeight) { vel.velocity.Y -= jump.jumpHeight; ComponentManager.Instance.AddComponentToEntity(id, new SoundEffectComponent("jump")); } } vel.velocity.Y += gravity * (float)gameTime.ElapsedGameTime.TotalSeconds; pos.position += vel.velocity * (float)gameTime.ElapsedGameTime.TotalSeconds; } } } }
/// <summary> /// a method that determines if the AI shall jump /// </summary> /// <param name="gameTime"></param> /// <param name="AIid"> Id of AI Player </param> /// <returns> True if the AI shall jump, false if not </returns> private bool AI(GameTime gameTime, int AIid) { PositionComponent pos = ComponentManager.Instance.GetEntityComponent <PositionComponent>(AIid); DrawableComponent drawComp = ComponentManager.Instance.GetEntityComponent <DrawableComponent>(AIid); VelocityComponent vel = ComponentManager.Instance.GetEntityComponent <VelocityComponent>(AIid); DirectionComponent dir = ComponentManager.Instance.GetEntityComponent <DirectionComponent>(AIid); JumpComponent jump = ComponentManager.Instance.GetEntityComponent <JumpComponent>(AIid); PlayerComponent pc = ComponentManager.Instance.GetEntityComponent <PlayerComponent>(AIid); DirectionComponent dc = ComponentManager.Instance.GetEntityComponent <DirectionComponent>(AIid); if (pc.isFalling) { return(false); } int nearestPlayer = 0, nearestPlatform = 0, nearestPowerUp = 0; Dictionary <int, IComponent> platforms = ComponentManager.Instance.GetAllEntitiesAndComponentsWithComponentType <PlatformComponent>(); Dictionary <int, IComponent> players = ComponentManager.Instance.GetAllEntitiesAndComponentsWithComponentType <PlayerComponent>(); Dictionary <int, IComponent> powerUps = ComponentManager.Instance.GetAllEntitiesAndComponentsWithComponentType <PowerUppComponent>(); float dist = float.MaxValue; foreach (var item in platforms) { int id = item.Key; PositionComponent platPos = ComponentManager.Instance.GetEntityComponent <PositionComponent>(id); var distance = Vector2.DistanceSquared(pos.position, platPos.position); if (nearestPlatform == 0 || distance < dist) { nearestPlatform = id; dist = distance; } } //dist = float.MaxValue; //foreach (var item in players) //{ // int id = item.Key; // PositionComponent playPos = ComponentManager.Instance.GetEntityComponent<PositionComponent>(id); // var distance = Vector2.DistanceSquared(pos.position, playPos.position); // if (nearestPlayer == 0 || distance < dist) // { // nearestPlayer = id; // dist = distance; // } //} //dist = float.MaxValue; //if(powerUps != null) { // foreach (var item in powerUps) // { // int id = item.Key; // PositionComponent powerPos = ComponentManager.Instance.GetEntityComponent<PositionComponent>(id); // var distance = Vector2.DistanceSquared(pos.position, powerPos.position); // if (nearestPowerUp == 0 || distance < dist) // { // nearestPowerUp = id; // dist = distance; // } // } //} float distToBottom = Game.Instance.GraphicsDevice.Viewport.Height - pos.position.Y; float distToTop = pos.position.Y; if (distToTop < jump.maxJumpHeight) { return(false); } if (distToBottom < drawComp.texture.Height * 1.5f) { return(true); } if (nearestPlatform != 0) { PositionComponent platPos = ComponentManager.Instance.GetEntityComponent <PositionComponent>(nearestPlatform); DrawableComponent draw = ComponentManager.Instance.GetEntityComponent <DrawableComponent>(nearestPlatform); int width, height; if (ComponentManager.Instance.CheckIfEntityHasComponent <AnimationComponent>(AIid)) { AnimationComponent ani = ComponentManager.Instance.GetEntityComponent <AnimationComponent>(AIid); width = ani.sourceRectangle.Width; height = ani.sourceRectangle.Height; } else { width = drawComp.texture.Width; height = drawComp.texture.Height; } float te = pos.position.X; float te1 = platPos.position.X - width * 1.5f; float te2 = pos.position.X; float te3 = platPos.position.X + draw.texture.Width + 100; if (te > te1 && te2 < te3) { float test = platPos.position.Y + draw.texture.Height * 0.5f; float test1 = platPos.position.Y + draw.texture.Height + height * 2f; if (pos.position.Y > test && pos.position.Y < test1) { return(false); } float tem = platPos.position.Y + draw.texture.Height * 0.5f; float tem3 = platPos.position.Y - height * 2; if (pos.position.Y < tem && pos.position.Y > tem3) { return(true); } } } if (pos.position.Y > Game.Instance.GraphicsDevice.Viewport.Height / 2) { return(true); } return(false); }