/// <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);
        }
Exemple #4
0
    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);
    }
Exemple #5
0
    void SetupJumpComponent()
    {
        var jumpCmp = new JumpComponent()
        {
            jumpForce = this.jumpForce
        };

        entityManager.AddComponentData(thisEntity, jumpCmp);
    }
Exemple #6
0
    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>();
    }
Exemple #7
0
        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);
        }
Exemple #9
0
 // 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);
            }
        });
    }
Exemple #12
0
        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;
                    }
                }
            }
        }
Exemple #13
0
        /// <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);
        }