Ejemplo n.º 1
0
 private void Update()
 {
     if (isGround)
     {
         State = NinjaState.Idol;
     }
     reloadTimer -= Time.deltaTime;
     if (Input.GetButton("Fire1") && reloadTimer <= 0)
     {
         bShooting = true;
     }
     if (bShooting)
     {
         Shoot(); bShooting = false; reloadTimer = NomenalTimeForReloading;
     }
     if (Input.GetButton("Horizontal"))
     {
         Run();
     }
     // if (Input.GetButton("Vertical"))SitDowm();
     if (isGround && Input.GetButtonDown("Jump"))
     {
         Jump();
     }
 }
Ejemplo n.º 2
0
 private void ChekGround()
 {
     Collider2D [] coll = Physics2D.OverlapCircleAll(transform.position, 0.3F);
     isGround = coll.Length > 1;
     if (!isGround)
     {
         State = NinjaState.Jump;
     }
 }
Ejemplo n.º 3
0
    public void SetUp(NinjaController ninja, NinjaState stateOnSpawn)
    {
        ninjaToSpawn       = ninja;
        ninjaToSpawn.State = NinjaState.Spawning;
        ninjaState         = stateOnSpawn;
        spawnTime          = DateTime.Now.AddSeconds(spawnDelay);
        var settings = ps.main;

        settings.startColor = ninja.NinjaColor;
        ps.Play();
        audioSource = GetComponent <AudioSource>();
    }
Ejemplo n.º 4
0
    private void Run()
    {
        Vector3 direction = transform.right * Input.GetAxis("Horizontal");

        transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);

        sprite.flipX = direction.x < 0.0F;

        if (isGround)
        {
            State = NinjaState.Run;
        }
    }
Ejemplo n.º 5
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            if (isCrouch)
            {
                Image = crouchImage;
                Pos.Y = 405;
                base.Draw(spriteBatch);
            }

            else
            {
                if (ninjaState != NinjaState.Jumping /*|| ninjaState != NinjaState.MovingJumpingLeft || ninjaState != NinjaState.MovingJumpingRight*/)
                {
                    if (ninjaState == NinjaState.Running || ninjaState == NinjaState.Walking)
                    {
                        if (staminaAmount <= 4)
                        {
                            ninjaState = NinjaState.Walking;
                        }
                        Image = running[runImage % running.Count];
                    }

                    else if (ninjaState == NinjaState.Idle && !isFalling)
                    {
                        Pos.Y = 380;
                        Image = idle[idleNum % idle.Count];
                    }
                }

                else
                {
                    Image = jumpImage;
                }



                base.Draw(spriteBatch);
            }

            for (int i = 0; i < staminaAmount; i++)
            {
                spriteBatch.Draw(staminaImage, new Vector2(posX1, 0), null, Color.White, 0f, Vector2.Zero, new Vector2(1, 1), SpriteEffects.None, 0f);
                posX1 += 40;
                //if (posX1 > 280)
                //{
                //    posX1 = 0;
                //}
            }
            posX1 = 0;
        }
Ejemplo n.º 6
0
    public void SpawnNinja(NinjaController ninja, NinjaState ninjaStateOnSpawn = NinjaState.Alive, bool shieldOnSpawn = false)
    {
        points.ShuffleInPlace();
        Vector2 spawnPoint = points[0].position;
        int     length     = points.Length;

        for (int i = 0; i < length; i++)
        {
            if (Physics2D.OverlapCircle(points[i].position, safetyCastRadius, unsafeLayers) != null)
            {
                continue;
            }
            spawnPoint = points[i].position;
            break;
        }

        var spawner = Instantiate(ninjaSpawnerPrefab, spawnPoint, Quaternion.identity);

        spawner.SetUp(ninja, ninjaStateOnSpawn);
        if (shieldOnSpawn)
        {
            ninja.StartShield(3.0f);
        }
    }
Ejemplo n.º 7
0
    public void SpawnNinja(NinjaController ninja, int spawnPosition, NinjaState ninjaStateOnSpawn)
    {
        var spawner = Instantiate(ninjaSpawnerPrefab, Points[spawnPosition].position, Quaternion.identity);

        spawner.SetUp(ninja, ninjaStateOnSpawn);
    }
Ejemplo n.º 8
0
        public void Update(KeyboardState keyboardState, KeyboardState lastKeyBoardState, Rectangle screen, GameTime gameTime)
        {
            timerMain        += gameTime.ElapsedGameTime;
            timerWalkStamina += gameTime.ElapsedGameTime;
            timerIdleStamina += gameTime.ElapsedGameTime;
            timerRunStamina  += gameTime.ElapsedGameTime;

            //if (staminaAmount > 7)
            //{
            //    staminaAmount = 6;
            //}

            //else if (staminaAmount < 0)
            //{
            //    staminaAmount = 0;
            //}

            if (ninjaState == NinjaState.Idle)
            {
                if (idleNum > 9)
                {
                    idleNum = 0;
                }
                if (timerMain.TotalMilliseconds > 45)
                {
                    timerMain = TimeSpan.Zero;
                    idleNum++;
                }


                if (timerIdleStamina.TotalMilliseconds > 2000)
                {
                    timerIdleStamina = TimeSpan.Zero;
                    if (staminaAmount < 7)
                    {
                        staminaAmount++;
                    }
                }
            }



            if (Pos.Y > 380)
            {
                isFalling  = false;
                Pos.Y      = 380;
                ninjaState = NinjaState.Idle;
            }



            if (isFalling)
            {
                if (Pos.Y - UpwardsVelocity > initialPosition.Y)
                {
                    if (staminaAmount > 0)
                    {
                        staminaAmount--;
                    }

                    UpwardsVelocity = 0;
                    isFalling       = false;
                }

                UpwardsVelocity -= gravity;
                Pos.Y           -= UpwardsVelocity;
            }

            if (ninjaState == NinjaState.Jumping || ninjaState == NinjaState.MovingJumpingLeft || ninjaState == NinjaState.MovingJumpingRight)
            {
                isFalling = true;

                //if (staminaAmount > 0)
                //{
                //    staminaAmount--;
                //}

                /*
                 * if (Pos.Y - UpwardsVelocity > initialPosition.Y)
                 * {
                 *  UpwardsVelocity = 0;
                 *  ninjaState = NinjaState.Idle;
                 * }
                 *
                 * UpwardsVelocity -= gravity;
                 * Pos.Y -= UpwardsVelocity;
                 */
            }
            else if (keyboardState.IsKeyDown(Keys.LeftControl) && isCrouch == false)
            {
                if (staminaAmount > 4)
                {
                    SpeedX     = 8;
                    ninjaState = NinjaState.Running;
                    if (timerRunStamina.TotalMilliseconds > 500)
                    {
                        timerRunStamina = TimeSpan.Zero;
                        if (staminaAmount > 0)
                        {
                            staminaAmount--;
                        }
                    }
                }

                else if (staminaAmount <= 4)
                {
                    ninjaState = NinjaState.Walking;
                }
            }

            else if (keyboardState.IsKeyDown(Keys.LeftShift) && ninjaState != NinjaState.Running)
            {
                SpeedX     = 2;
                ninjaState = NinjaState.Crouching;
                isCrouch   = true;
            }
            else if (keyboardState.IsKeyUp(Keys.LeftShift) || keyboardState.IsKeyUp(Keys.LeftControl))
            {
                SpeedX     = 4;
                ninjaState = NinjaState.Idle;
                isCrouch   = false;
            }

            if (keyboardState.IsKeyDown(Keys.Space) && ninjaState != NinjaState.Jumping && isCrouch == false && !isFalling)
            {
                if (staminaAmount > 3)
                {
                    ninjaState      = NinjaState.Jumping;
                    UpwardsVelocity = 10;
                }
            }

            /*if (keyboardState.IsKeyDown(Keys.A) && keyboardState.IsKeyDown(Keys.Space) && ninjaState == NinjaState.Idle)
             * {
             *  ninjaState = NinjaState.MovingJumpingLeft;
             *  //UpwardsVelocity = 10;
             * }
             *
             * else if (keyboardState.IsKeyDown(Keys.D) && keyboardState.IsKeyDown(Keys.Space) && ninjaState == NinjaState.Idle)
             * {
             *  ninjaState = NinjaState.MovingJumpingRight;
             *  //UpwardsVelocity = 0;
             * }
             */

            //if (Pos.Y < 380 && (ninjaState != NinjaState.Jumping)) //ninjatate != NinjaState.MovingJumpingLeft && ninjaState != NinjaState.MovingJumpingRight))
            //{
            //    initialPosition.Y = 380;
            //}

            else if (keyboardState.IsKeyDown(Keys.A))
            {
                if (ninjaState == NinjaState.Running)
                {
                    if (staminaAmount > 4)
                    {
                        ninjaState = NinjaState.Running;
                    }
                    else if (staminaAmount <= 4)
                    {
                        ninjaState = NinjaState.Walking;
                    }
                    if (runImage == 6)
                    {
                        runImage = 0;
                    }
                    if (timerMain.TotalMilliseconds > 20)
                    {
                        timerMain = TimeSpan.Zero;
                        runImage++;
                    }
                    //if (timerRunStamina.TotalMilliseconds > 100)
                    //{
                    //    timerRunStamina = TimeSpan.Zero;
                    //    staminaAmount--;
                    //}
                }

                else
                {
                    ninjaState = NinjaState.Walking;

                    if (timerWalkStamina.TotalMilliseconds > 30)
                    {
                        timerWalkStamina = TimeSpan.Zero;
                        walkDistance++;
                    }

                    //if (walkDistance == 30)
                    //{
                    //    walkDistance = 0;
                    //    if (staminaAmount < 7)
                    //    {
                    //        staminaAmount++;
                    //    }
                    //}

                    if (runImage == 6)
                    {
                        runImage = 0;
                    }

                    if (timerMain.TotalMilliseconds > 50)
                    {
                        timerMain = TimeSpan.Zero;
                        runImage++;
                    }
                }
                Pos.X -= SpeedX;
                SetSpriteEffects(SpriteEffects.FlipHorizontally);
            }

            else if (keyboardState.IsKeyDown(Keys.D))
            {
                if (ninjaState == NinjaState.Running)
                {
                    if (staminaAmount > 4)
                    {
                        ninjaState = NinjaState.Running;
                    }
                    else if (staminaAmount <= 4)
                    {
                        ninjaState = NinjaState.Walking;
                    }



                    if (timerMain.TotalMilliseconds > 20)
                    {
                        timerMain = TimeSpan.Zero;
                        runImage++;
                    }



                    //if (timerRunStamina.TotalMilliseconds > 100)
                    //{
                    //    timerRunStamina = TimeSpan.Zero;
                    //    staminaAmount--;
                    //}
                }

                else
                {
                    ninjaState = NinjaState.Walking;

                    if (timerMain.TotalMilliseconds > 50)
                    {
                        timerMain = TimeSpan.Zero;
                        runImage++;
                    }

                    if (timerWalkStamina.TotalMilliseconds > 30)
                    {
                        timerWalkStamina = TimeSpan.Zero;
                        walkDistance++;
                    }

                    //if (walkDistance == 30)
                    //{
                    //    walkDistance = 0;
                    //    if (staminaAmount < 7)
                    //    {
                    //        staminaAmount++;
                    //    }

                    //}
                }


                Pos.X += SpeedX;
                SetSpriteEffects(SpriteEffects.None);
            }

            if (ninjaState == NinjaState.MovingJumpingLeft)
            {
                UpwardsVelocity = 10;
            }

            else if (ninjaState == NinjaState.MovingJumpingRight)
            {
                UpwardsVelocity = 10;
            }
        }