예제 #1
0
 public void Update(List <InputType> inputs, float deltatime, List <ICollidable> levelActors)
 {
     currentCharacter.Update(inputs, deltatime, levelActors);
 }
예제 #2
0
        public override void Update(GameTime gameTime, float deltaTime)
        {
            //Debug.WriteLine("update");
            base.Update(gameTime, deltaTime); //la récupération des inputs se fait dans la méthode de la classe mère
            rythmTempoMatch      = musicManager.CurrentSongDTO.RythmLine.Contains <int>(musicManager.ManagedTimer.CurrentBeat);
            inputRythmMatchTempo = false;
            showRythmPushed      = false;
            showMusicPushed      = false;

            if (playerInputs.Contains(InputType.SINGLE_LEFT_CLICK))
            {
                if (playPauseZone.Contains(cursorPosition))
                {
                    playMusic = !playMusic;
                    if (playMusic)
                    {
                        musicManager.Play();
                    }
                    else
                    {
                        musicManager.Pause();
                    }
                }
                else if (stopBtnZone.Contains(cursorPosition))
                {
                    musicManager.Stop();
                }
            }
            if (playerInputs.Contains(InputType.SINGLE_SPACE))
            {
                inputMusicPushed = true;
                if (musicTempoMatch)
                {
                    inputMusicMatchTempo = true;
                }
            }
            if (playerInputs.Contains(InputType.SINGLE_A) || playerInputs.Contains(InputType.SINGLE_E))//TODO deuxième partie à enlever
            {
                inputRythmPushed = true;
                showRythmPushed  = true;
                if (rythmTempoMatch)
                {
                    inputRythmMatchTempo = true;
                }

                if (playerInputs.Contains(InputType.SINGLE_A) && playerInputs.Contains(InputType.SINGLE_E))
                {
                    //défense
                }
                else if (playerInputs.Contains(InputType.SINGLE_A))
                {
                    //dash à gauche
                }
                else if (playerInputs.Contains(InputType.SINGLE_E))
                {
                    //dash à droite
                }
            }
            else if (playerInputs.Contains(InputType.A) || playerInputs.Contains(InputType.E))
            {
                showRythmPushed  = true;
                inputRythmPushed = false;
            }
            else
            {
                inputRythmPushed = false;
                showRythmPushed  = false;
            }
            //Player.Instance.currentCharacter.mapRepresentation.Update(playerInputs, deltaTime);

            foreach (Beat b in musicManager.ManagedTimer.Beats)
            {
                b.Update(musicManager.ManagedTimer.CurrentBeat, musicManager.ManagedTimer.BPM, musicManager.ManagedTimer.IntervalsByBPM, mainGame.deltaTime, playMusic, (mainGame.graphics.PreferredBackBufferWidth / zoom - (int)posBarreTemps.X), tempsDAvance);
            }

            if (showMissed)
            {
                if (missedAnimated.FirstLoopDone == true)
                {
                    showMissed = false;
                }
                else
                {
                    missedAnimated.Update(deltaTime);
                }
            }
            if (showGreat)
            {
                if (greatAnimated.FirstLoopDone == true)
                {
                    showGreat = false;
                }
                else
                {
                    greatAnimated.Update(deltaTime);
                }
            }
            if (inputRythmPushed)
            {
                if (inputRythmMatchTempo)
                {
                    showGreat  = true;
                    showMissed = false;
                }
                else
                {
                    showGreat  = false;
                    showMissed = true;
                }
                greatAnimated.BackToFirstFrame();
                missedAnimated.BackToFirstFrame();
            }

            //Attention, le passage d'inputs au personnage du joueur doit se faire selon les résultats de l'algorithme précédent, pas avec une liste d'input classique

            List <ICollidable> levelActors = new List <ICollidable>(snowMap.tilesElements);

            player.Update(playerInputs, deltaTime, levelActors);



            //snowMap.Update();
        }
예제 #3
0
파일: Player.cs 프로젝트: PXLcat/IsoMap
 public void Update()
 {
     currentCharacter.Update();
 }