public void Update(GameTime gameTime)
        {
            //Physics updates first
            Position          += Velocity;
            _colRect.X         = (int)Position.X;
            _colRect.Y         = (int)Position.Y;
            CollisionRectangle = _colRect;

            render.Update(gameTime, entityState);

            Velocity  = inputReader.ReadInput();
            Velocity *= 4;

            if (Velocity == Vector2.Zero)
            {
                entityState = Enums.EntityState.idle;
            }
            else
            {
                entityState = Enums.EntityState.walking;
                if (Velocity.Y != 0)
                {
                    entityState = Enums.EntityState.jumping;
                }
            }

            Velocity = new Vector2(Velocity.X, Velocity.Y + 4);

            //If jumping, we need to boost our velocity
            if (entityState == Enums.EntityState.jumping && canJump)
            {
                Velocity = new Vector2(Velocity.X, Velocity.Y - 15);
                //canJump = false; //maakte een bug, dus floaty
            }
        }
        public Player(IInputReader inputReader)
        {
            this.inputReader = inputReader;
            render           = new RenderComponent("playerWalk", "playerJump", "player", 30, 11);

            entityState = Enums.EntityState.idle;
            Health      = 1;
            canJump     = true;


            var dimensions = render.GetDimensions();

            this.CollisionRectangle = new Rectangle((int)Position.X, (int)Position.Y, (int)dimensions.X, (int)dimensions.Y);
            _colRect = CollisionRectangle;
        }
Ejemplo n.º 3
0
        public void Update(GameTime gameTime, Enums.EntityState state)
        {
            if (fps == 0 || state != Enums.EntityState.walking)
            {
                destRect.X = 0;                 //just to be safe
            }

            if (timeSinceLastFrameChange > frameTime)
            {
                destRect.X += widthPerFrame;

                if (destRect.X >= spriteSheet.Width)
                {
                    destRect.X = 0;
                }

                timeSinceLastFrameChange = 0.0;
            }

            timeSinceLastFrameChange += gameTime.ElapsedGameTime.TotalSeconds;
        }
Ejemplo n.º 4
0
        public void Draw(Vector2 position, Enums.EntityState state, bool isFlipped = false)
        {
            switch (state)
            {
            case Enums.EntityState.walking:
            {
                if (isFlipped)
                {
                    Globals.SpriteBatch.Draw(spriteSheet, position, destRect, Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.FlipHorizontally, 1.0f);;
                }
                else
                {
                    Globals.SpriteBatch.Draw(spriteSheet, position, destRect, Color.White);
                }

                break;
            }


            case Enums.EntityState.jumping:
                Globals.SpriteBatch.Draw(jumpFrame, position, Color.White);
                break;

            default:
                if (isFlipped)
                {
                    Rectangle rect = new Rectangle(0, 0, idleFrame.Width, idleFrame.Height);
                    Globals.SpriteBatch.Draw(idleFrame, position, rect, Color.White, 0.0f, Vector2.Zero, 1.0f, SpriteEffects.FlipHorizontally, 1.0f);
                }
                else
                {
                    Globals.SpriteBatch.Draw(idleFrame, position, Color.White);
                }

                break;
            }
        }