private static Vector2 SpawnPosition(PlayerObject p) { var contains = true; Vector2 v = new Vector2(); int margin = 100; do { v.X = RandomNumber.Between(40, 1050); v.Y = RandomNumber.Between(0, 500); p.Position = v; contains = false; var pRec = p.GetRectangle(); foreach (var player in Players) { if (p != player) { var other = player.GetRectangle(); other.Inflate(margin, margin); if (other.Contains(pRec.Center)) { contains = true; } } } } while (contains); return(v); }
protected override void GetInput(GameTime gameTime) { _aiStanceElapsedTime += gameTime.ElapsedGameTime.TotalMilliseconds; if (_aiStanceElapsedTime >= _aiStanceWaitTime) { _aiStanceElapsedTime = 0; _aiStanceWaitTime = RandomNumber.Between(2000, 3000); var n = RandomNumber.Between(0, 100); if (n >= 0 && n <= 30) { CurrentState = State.Eating; } else if (n > 30 && n <= 60) { CurrentState = State.Idle; } else { CreateMovement(); if (n > 60 && n <= 75) { CurrentState = State.Running; _movement *= RUNNING_SPEED; } else { CurrentState = State.Walking; _movement *= WALKING_SPEED; } } } }
private void CreateMovement() { var n = RandomNumber.Between(0, 7); if (n == 0) { _movement.X = 1; _movement.Y = 1; Sheep.LookDirectionLeft = false; } if (n == 1) { _movement.X = 1; _movement.Y = 0; Sheep.LookDirectionLeft = false; } if (n == 2) { _movement.X = 1; _movement.Y = -1; Sheep.LookDirectionLeft = false; } if (n == 3) { _movement.X = 0; _movement.Y = 1; } if (n == 4) { _movement.X = 0; _movement.Y = -1; } if (n == 5) { _movement.X = -1; _movement.Y = 1; Sheep.LookDirectionLeft = true; } if (n == 6) { _movement.X = -1; _movement.Y = 0; Sheep.LookDirectionLeft = true; } if (n == 7) { _movement.X = -1; _movement.Y = -1; Sheep.LookDirectionLeft = true; } }
public void Update(GameTime gameTime) { ElapsedTime += gameTime.ElapsedGameTime.TotalMilliseconds; // adds elapsed time since the last frame if (ElapsedTime > AnimationManager.FRAMETIME) { CurrentFrame++; //wenn anzahl an maximalen frames erreicht ist, starte von 0 if (CurrentFrame == AnimationManager.Reference.TextureListSheep[_currentAnimation].FrameCount) { //blinking idle if (_currentAnimation == AnimationManager.AnimationType.IdleBlinking) { _currentAnimation = AnimationManager.AnimationType.Idle; } else if (_currentAnimation == AnimationManager.AnimationType.Idle) { var n = RandomNumber.Between(0, 100); if (n < 20) { Play(AnimationManager.AnimationType.IdleBlinking); } } if (_currentAnimation == AnimationManager.AnimationType.Dying) { CurrentFrame--; //don't loop dying } else { CurrentFrame = 0; } } ElapsedTime = 0; } }
protected override void GetInput(GameTime gameTime) { CurrentState = State.Idle; _movement = new Vector2(); if (_soundWaitTime <= 0) { if (InputManager.GameMakeSoundPressed(_gamePadId)) { GameController.SheepSounds[RandomNumber.Between(0, 1)].Play(); _soundWaitTime = 3000D; } } else { _soundWaitTime -= gameTime.ElapsedGameTime.TotalMilliseconds; } //Debug.WriteLine(_soundWaitTime); if (InputManager.GameEatPressed(_gamePadId)) { CurrentState = State.Eating; return; } if (InputManager.GameChoosePressed(_gamePadId) && Sheep.IsBlack) { GameController.ChooseSelected(); } if (InputManager.GameLeftPressed(_gamePadId) || InputManager.GameUpPressed(_gamePadId) || InputManager.GameRightPressed(_gamePadId) || InputManager.GameDownPressed(_gamePadId) ) { CurrentState = InputManager.GameRunPressed(_gamePadId) ? State.Running : State.Walking; } if (InputManager.GameLeftPressed(_gamePadId)) { _movement.X += -1; Sheep.LookDirectionLeft = true; } if (InputManager.GameRightPressed(_gamePadId)) { _movement.X += 1; Sheep.LookDirectionLeft = false; } if (InputManager.GameUpPressed(_gamePadId)) { _movement.Y += -1; } if (InputManager.GameDownPressed(_gamePadId)) { _movement.Y += 1; } if (Movement.LengthSquared() <= 0) { CurrentState = State.Idle; } switch (CurrentState) { case State.Running: _movement *= RUNNING_SPEED; break; case State.Walking: _movement *= WALKING_SPEED; break; } }
public void Headbanging() { CurrentState = State.Headbanging; _aiStanceWaitTime = RandomNumber.Between(2000, 3000); }