Exemple #1
0
        public void Update(GameTime gameTime)
        {
            //position += velocity;

            if (!isDead)
            {
                inputUpdate();
            }

            bulletTimer++;
            for (int i = 0; i < 100; i++)
            {
                if (bullet[i] != null)
                {
                    bullet[i].Update(gameTime);
                }
            }

            switch (playerState)
            {
            case 0:
                idleTimer       += 1;
                myAnimatedSprite = defaultAnim;
                // make idle timer zero after any input
                if (idleTimer > 300)
                {
                    myAnimatedSprite = smokingAnim;
                }
                else
                {
                    myAnimatedSprite = breathingAnim;
                }
                break;

            case 1:
                myAnimatedSprite = walkingAnim;
                myAnimatedSprite.animComplete = true;
                break;

            case 2:
                myAnimatedSprite = meleeWeaponStandAnim[meleeWeaponType];
                break;

            case 3:
                myAnimatedSprite = meleeWeaponStandAnim[meleeWeaponType];
                break;

            case 4:
                myAnimatedSprite = rangeWeaponStandAnim[rangeWeaponType];
                break;

            case 5:
                myAnimatedSprite = rangeWeaponWalkAnim[rangeWeaponType];
                break;

            case 6:
                myAnimatedSprite = playerStompAnim;
                break;

            case 7:
                myAnimatedSprite = playerCrouchAnim;
                break;

            case 8:
                myAnimatedSprite = playerHandcuffAnim;
                break;

            case 9:
                myAnimatedSprite = playerDeathAnim;
                break;
            }

            if (playerState == 2)
            {
                usingPipe = true;
            }
            else
            {
                usingPipe = false;
            }

            if (playerState == 9 || playerState == 7)
            {
                myAnimatedSprite.loopable = false;
            }
            else
            {
                myAnimatedSprite.loopable = true;
            }

            if (isDead)
            {
                playerState = 9;
            }

            if (position.Y + defaultTexture.Height >= 720)
            {
                hasJumped = false;
            }

            if (hasJumped == false)
            {
                velocity.Y = 0f;
            }
            myAnimatedSprite.Update();
        }
Exemple #2
0
        public void Update(GameTime gameTime)
        {
            //position += velocity;

            if(!isDead)
             inputUpdate();

            bulletTimer++;
            for (int i = 0; i < 100; i++)
            {
                if (bullet[i] != null)
                    bullet[i].Update(gameTime);
            }

            switch (playerState)
            {
                case 0:
                    idleTimer += 1;
                    myAnimatedSprite = defaultAnim;
                    // make idle timer zero after any input
                    if (idleTimer > 300)
                    {
                        myAnimatedSprite = smokingAnim;
                    }
                    else
                    {
                        myAnimatedSprite = breathingAnim;
                    }
                    break;
                case 1:
                    myAnimatedSprite = walkingAnim;
                    myAnimatedSprite.animComplete = true;
                    break;
                case 2:
                    myAnimatedSprite = meleeWeaponStandAnim[meleeWeaponType];
                    break;
                case 3:
                    myAnimatedSprite = meleeWeaponStandAnim[meleeWeaponType];
                    break;
                case 4:
                    myAnimatedSprite = rangeWeaponStandAnim[rangeWeaponType];
                    break;
                case 5:
                    myAnimatedSprite = rangeWeaponWalkAnim[rangeWeaponType];
                    break;
                case 6:
                    myAnimatedSprite = playerStompAnim;
                    break;
                case 7:
                    myAnimatedSprite = playerCrouchAnim;
                    break;
                case 8:
                    myAnimatedSprite = playerHandcuffAnim;
                    break;
                case 9:
                    myAnimatedSprite = playerDeathAnim;
                    break;
            }

            if(playerState==2)
            {
                usingPipe = true;
            }
            else
            {
                usingPipe = false;
            }

            if (playerState == 9 || playerState == 7)
            {
                myAnimatedSprite.loopable = false;
            }
            else
            {
                myAnimatedSprite.loopable = true;
            }

            if (isDead)
            {
                playerState = 9;
            }

            if (position.Y + defaultTexture.Height >= 720)
            {
                hasJumped = false;
            }

            if (hasJumped == false)
            {
                velocity.Y = 0f;
            }
            myAnimatedSprite.Update();
        }
Exemple #3
0
        //void shootNow()
        //{
        //    if (bulletCount < bullet.Length - 1)
        //    {
        //        if (bulletTimer > 50)
        //        {
        //            //sndPistol.Play(); //#sound
        //            if (direction == -1)
        //            {
        //                bullet[bulletCount].position.X = myPos.X + 136; //310
        //                bullet[bulletCount].position.Y = myPos.Y + 38 + 50;
        //                bullet[bulletCount].direction = 1;
        //            }
        //            else
        //            {
        //                bullet[bulletCount].position.X = myPos.X + 84;
        //                bullet[bulletCount].position.Y = myPos.Y + 38 + 50;
        //                bullet[bulletCount].direction = -1;
        //            }
        //            bulletCount++;
        //            bulletTimer = 0;
        //        }

        //    }
        //}


        public void updateAI(GameTime gameTime)
        {
            if (isInGame)
            {
                //if (enemyState != 3)
                //{
                if (myAiType == aiType.standingCivilian || myAiType == aiType.standingThug)
                {
                    if (myAiOrientation == aiOrientation.Bad)
                    {
                        if (myAiAttackType == aiAttackType.Melee)
                        {
                            if (Math.Abs(myPlayer.position.X - myPos.X) > meleeRadius)
                            {
                                enemyState = 0;
                            }
                            else
                            {
                                enemyState = 1;
                            }
                        }
                        else if (myAiAttackType == aiAttackType.Range)
                        {
                            if (Math.Abs(myPlayer.position.X - myPos.X) > rangeRadius)
                            {
                                enemyState = 0;
                            }
                            else
                            {
                                enemyState = 1;
                            }
                        }
                    }
                    else if (myAiOrientation == aiOrientation.Good)
                    {
                        //if (myAiAttackType == aiAttackType.Idle)
                        //{
                        enemyState = 0;
                        //}
                    }
                }
                else if (myAiType == aiType.walkingCivilian || myAiType == aiType.walkingThug)
                {
                    if (myAiOrientation == aiOrientation.Bad)
                    {
                        if (myAiAttackType == aiAttackType.Melee)
                        {
                            if (Math.Abs(myPlayer.position.X - myPos.X) > meleeRadius)
                            {
                                enemyState = 0;
                            }
                            else
                            {
                                enemyState = 1;
                            }
                        }
                        else if (myAiAttackType == aiAttackType.Range)
                        {
                            if (Math.Abs(myPlayer.position.X - myPos.X) > rangeRadius)
                            {
                                enemyState = 0;
                            }
                            else
                            {
                                enemyState = 1;
                            }
                        }
                    }
                    else if (myAiOrientation == aiOrientation.Good)
                    {
                        //if (myAiAttackType == aiAttackType.Idle)
                        //{
                        enemyState = 0;
                        //}
                    }
                }
                //}


                if (isDead)
                {
                    enemyState = 3;
                }

                if (isFallen)
                {
                    enemyState = 2;
                }

                if (isCuffed)
                {
                    enemyState = 4;
                }

                //State Based Movement
                switch (enemyState)
                {
                case 0:
                    if (myAiType == aiType.walkingCivilian || myAiType == aiType.walkingThug)
                    {
                        currentAnimation = myAnimations[0];
                        if (direction == -1)    //goRight
                        {
                            myPos.X += mySpeed;
                        }
                        else if (direction == 1)    //goLeft
                        {
                            myPos.X -= mySpeed;
                        }
                    }
                    else if (myAiType == aiType.standingCivilian || myAiType == aiType.standingThug)
                    {
                        currentAnimation = myAnimations[0];
                        if (myPlayer.position.X < myPos.X - 100)    //error in postions
                        {
                            direction = 1;
                        }
                        else if (myPlayer.position.X >= myPos.X - 100)
                        {
                            direction = -1;
                        }
                    }
                    break;

                case 1:
                    if (myAiType == aiType.walkingCivilian || myAiType == aiType.walkingThug)
                    {
                        if (myAiOrientation == aiOrientation.Bad)
                        {
                            currentAnimation = myAnimations[1];
                        }
                        if (myAiAttackType == aiAttackType.Melee)
                        {
                        }
                        else if (myAiAttackType == aiAttackType.Range)
                        {
                            //shootNow();

                            if (direction == -1)    //goRight
                            {
                                myPos.X += mySpeed;
                            }
                            else if (direction == 1)    //goLeft
                            {
                                myPos.X -= mySpeed;
                            }
                        }
                    }
                    else if (myAiType == aiType.standingCivilian || myAiType == aiType.standingThug)
                    {
                        if (myAiOrientation == aiOrientation.Bad)
                        {
                            currentAnimation = myAnimations[1];

                            //Shoot Bullets

                            /*    if (bulletCount < bullet.Length - 1)
                             *  {
                             *      if (bulletTimer > 20)
                             *      {
                             *      new Bullet(bulletTexture, new Vector2(2000, 2000), 1);
                             *      //sndPistol.Play(); //#sound
                             *      if (direction >= 0)
                             *          {
                             *              bullet[bulletCount].position.X = myPos.X + 136; //310
                             *              bullet[bulletCount].position.Y = myPos.Y + 38;
                             *              bullet[bulletCount].direction = 1;
                             *          }
                             *          else
                             *          {
                             *              bullet[bulletCount].position.X = myPos.X + 84;
                             *              bullet[bulletCount].position.Y = myPos.Y + 38;
                             *              bullet[bulletCount].direction = -1;
                             *          }
                             *          bulletCount++;
                             *          bulletTimer = 0;
                             *      }
                             *
                             *  }
                             */
                        }

                        if (myPlayer.position.X < myPos.X - 100)    //error in postions
                        {
                            direction = 1;
                        }
                        else if (myPlayer.position.X >= myPos.X - 100)
                        {
                            direction = -1;
                        }
                    }

                    break;

                case 2:
                    currentAnimation = myAnimations[2];
                    loop             = false;
                    break;

                case 3:
                    currentAnimation = myAnimations[3];
                    //loop = false;
                    break;

                case 4:
                    currentAnimation = myAnimations[4];
                    loop             = false;
                    break;
                }

                if (currentAnimation == myAnimations[1])
                {
                    changeCollider = true;
                    if (direction == -1)
                    {
                        colliderXPos = 72;
                    }
                    else
                    {
                        colliderXPos = 28;
                    }
                }
                else
                {
                    changeCollider = false;
                    colliderXPos   = 72;
                }

                //Debug.WriteLine(myCamera.center.X);
                //if (currentAnimation!=null && myPos.X > myCamera.center.X && myPos.X < myCamera.center.X + 1280)
                currentAnimation.Update();

                //bulletTimer++;
                //for (int i = 0; i < 100; i++)
                //{
                //    if (bullet[i] != null)
                //        bullet[i].Update(gameTime);
                //}
            }
        }