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(); } }
private void ChekGround() { Collider2D [] coll = Physics2D.OverlapCircleAll(transform.position, 0.3F); isGround = coll.Length > 1; if (!isGround) { State = NinjaState.Jump; } }
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>(); }
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; } }
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; }
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); } }
public void SpawnNinja(NinjaController ninja, int spawnPosition, NinjaState ninjaStateOnSpawn) { var spawner = Instantiate(ninjaSpawnerPrefab, Points[spawnPosition].position, Quaternion.identity); spawner.SetUp(ninja, ninjaStateOnSpawn); }
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; } }