예제 #1
0
파일: Enemy1.cs 프로젝트: Petebuster/SRH
        public void Draw(SpriteBatch spriteBatch)
        {
            if (velocity.X > 0)
            {
                Enemywalk.Draw(spriteBatch, position, true);
            }
            else if (velocity.X == 0)
            {
                Enemyidle.Draw(spriteBatch, position);
            }
            else
            {
                Enemywalk.Draw(spriteBatch, position, false);
            }

            ////enemy1.Draw(spriteBatch);
            //spriteBatch.Draw(Statemachine.Pixel, rectangle, Color.White);
        }
예제 #2
0
파일: Enemy1.cs 프로젝트: Petebuster/SRH
        public void Update(GameTime gameTime, Charakter charakter)
        {
            Console.WriteLine(state);

            velocity.Y += 0.15f;
            distance    = charakter.Position.X - this.position.X;

            EnemyisWalkingRight = false;
            EnemyisWalkingLeft  = false;


            position += velocity;
            rectangle = new Rectangle((int)position.X, (int)position.Y, 45, 54);


            switch (state)
            {
            case EnemyState.idle:
                //velocity.X = 0;
                UpdateIdle();

                if (Math.Abs(distance) < 150)
                {
                    state = EnemyState.hunting;
                }
                break;

            case EnemyState.patrolling:
                break;

            case EnemyState.hunting:
                UpdateHunting();

                if (Math.Abs(distance) > 150)
                {
                    state = EnemyState.idle;
                }
                break;
            }


            Enemyidle.Update(gameTime);
            Enemywalk.Update(gameTime);
        }