public virtual void Update(float dt) { //footsteps try { if (footsoundDescriptor != null) { footsoundDescriptor.Position = (Vector3)character.Position; } } catch (NullReferenceException) { //zdarza sie... } if (character.HasGroundContact && Velocity != 0 && footsoundDescriptor == null) { footsoundDescriptor = SoundSystem.SoundEngine.StartSteps(SoundSystem.Enums.SoundTypes.stepsInside1, (Vector3)character.Position); } //strafing if (strafeX * maxStrafeSpeed != strafeSpeedX) { //strafeSpeedX -= Math.Sign(strafeSpeedX - strafeX * maxStrafeSpeed) * // Math.Min(dt * strafeAcc, Math.Abs(strafeSpeedX - strafeX * maxStrafeSpeed)); strafeSpeedX = maxStrafeSpeed * strafeX; } if (turnX * maxTurnSpeed != turnSpeedX) { //turnSpeedX -= Math.Sign(turnSpeedX - turnX * maxTurnSpeed) * // Math.Min(dt * turnAcc, Math.Abs(turnSpeedX - turnX * maxTurnSpeed)); turnSpeedX = turnX * maxTurnSpeed; } if (turnY * maxTurnSpeed != turnSpeedY) { //turnSpeedY -= Math.Sign(turnSpeedY - turnY * maxTurnSpeed) * // Math.Min(dt * turnAcc, Math.Abs(turnSpeedY - turnY * maxTurnSpeed)); turnSpeedY = turnY * maxTurnSpeed; } Update(dt, turnSpeedX, turnSpeedY, strafeSpeedX, 0); }
public virtual void Jump() { if (character.HasGroundContact) { if (footsoundDescriptor != null) { SoundSystem.SoundEngine.StopSteps(footsoundDescriptor); footsoundDescriptor = null; } character.Player.Jumped = true; MyVector v = character.Velocity; v.Y += GameSettings.Default.JumpSpeed; character.Velocity = v; character.HasGroundContact = false; if (character.CharacterClass.GameTeam == GameTeam.Assassins) SoundSystem.SoundEngine.PlaySound(SoundSystem.Enums.SoundTypes.assassinJah, (Vector3)this.character.Position); else if (character.CharacterClass.GameTeam == GameTeam.Knights) SoundSystem.SoundEngine.PlaySound(SoundSystem.Enums.SoundTypes.knightHou, (Vector3)this.character.Position); } }