コード例 #1
0
        //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
        }
コード例 #2
0
    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);
        }
    }
コード例 #3
0
 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();
         }
     }
 }
コード例 #4
0
    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);
    }
コード例 #5
0
    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);
    }