//After startup init private void Form1_Load(object sender, EventArgs e) { windowPosition = new Point(Left, Top); timer.Elapsed += new ElapsedEventHandler(Render); timer.AutoReset = true; timer.Enabled = true; //custom #region timer.Elapsed += new ElapsedEventHandler(Player.PlayerMove); timer.Elapsed += new ElapsedEventHandler(World.MoveEnemys); int musicP = EngineAudio.CreatePlayer(); EngineAudio.AddSound("music", @"./megalovania.wav"); EngineAudio.Play("music", musicP); EngineGraphics.sprites.Add("sans", new Bitmap(@"./sans.png")); //EngineGraphics.brushes.Add("dirt",new TextureBrush(new Bitmap(@"./dirt.jpg"))); EngineGraphics.brushes.Add("white", new SolidBrush(Color.White)); World.LoadWorld(@"./map.txt"); #endregion }
public void Update() { if (surface == RoadSurface.Offroad) { mixer.SetFloat(tarmacVolumeString, -80f); mixer.SetFloat(offroadVolumeString, 0f); } else if (surface == RoadSurface.Tarmac) { mixer.SetFloat(tarmacVolumeString, 0f); mixer.SetFloat(offroadVolumeString, -80f); } else if (surface == RoadSurface.Airborne) { mixer.SetFloat(tarmacVolumeString, -80f); mixer.SetFloat(offroadVolumeString, -80f); } foreach (var instance in instances) { float volDB = 0f; if (instance.details.usesSpeedCurve) { float vol = instance.details.speedCurve.Evaluate(speed / instance.details.maxSpeed); volDB -= (1 - vol) * 80f; } if (instance.details.usesTractionCurve) { float traction = 1f; switch (instance.details.tractionType) { case TractionType.ACCELL: traction = accellTraction; break; case TractionType.BRAKE: traction = brakeTraction; break; case TractionType.MIN: traction = Mathf.Min(accellTraction, brakeTraction); break; } float vol = instance.details.tractionCurve.Evaluate(traction); volDB -= (1 - vol) * 80f; } instance.source.volume = EngineAudio.DbToLinear(volDB); } }
public void SetEngine(EngineAudio type) { if (type == EngineAudio.NONE && engineAudioSource.isPlaying) { engineAudioSource.Stop(); } else if (type != EngineAudio.NONE) { engineAudioSource.clip = engineAudios[(int)type]; if (!engineAudioSource.isPlaying) { engineAudioSource.Play(); } } }
private float pitchRange; // The amount by which the pitch of the engine noises can vary. void Awake() { if (!myPV.isMine) { enabled = false; } else if (Instance == false) { Instance = this; } else { enabled = false; } engineAudio = new EngineAudio(audioSource, engineIdling, engineDriving, pitchRange); }
private void EngineAudioUpdate() { // 读取player的移动情况 EngineAudio type = EngineAudio.NONE; foreach (int i in Player.playerMoves) { if (i == 0) { type = EngineAudio.IDLE; } else if (i > 0) { type = EngineAudio.DRIVING; break; } } SetEngine(type); }