コード例 #1
0
        public override void Update(float deltatime)
        {
            // Retour au menu
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            {
                Globals.intStarCount = 0;
                Globals.GameStateStack.Set(new MainMenu());
            }

            // R�cup�ration de l'�tat de l'�cran tactile
            TouchCollection touchCollection = TouchPanel.GetState();

            // On test si l'�cran est touch� ou non, si oui on r�cup�re les coordonn�e du premier point de contact
            if (touchCollection.Count >= 1)
            {
                _TouchPosition = (touchCollection[0].Position);
            }

            // On ajoute le temps de l'Update au temps total d'affichage du menu
            fltTotalTime += deltatime;

            if (_TouchPosition.Y > 425 && _TouchPosition.Y < 475)
            {
                // Test si dans la zone du bouton "Menu"
                if (_TouchPosition.X > 50 && _TouchPosition.X < 305)
                {
                    Globals.intStarCount = 0;
                    Globals.ScoreList.Add(str_UserName + ": " + strScore);
                    SaveScore();
                    Globals.GameStateStack.Set(new MainMenu());
                }
                // Sinon test si dans la zone du bouton Score
                else if (_TouchPosition.X > 610 && _TouchPosition.X < 745)
                {
                    Globals.intStarCount = 0;
                    Globals.ScoreList.Add(str_UserName + " - " + strScore);
                    SaveScore();
                    Globals.GameStateStack.Set(new PlayGame());
                }
            }

            // On compte le nombre d'�toile actuellement affich�e, si - de 4, on en rajoute
            if (Globals.intStarCount < 4)
            {
                DrawStar tmpDrawStar = new DrawStar(fltTotalTime);
                lstStars.Add(tmpDrawStar);
                Globals.intStarCount += 1;
            }

            // On met � jour l'affichage des �toiles
            foreach (DrawStar currentStar in lstStars)
            {
                currentStar.Update(deltatime, fltTotalTime);
            }
        }
コード例 #2
0
        public override void Update(float deltatime)
        {
            // Quitter le jeu
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            {
                Globals.NyanGame.Exit();
            }

            // R�cup�ration de l'�tat de l'�cran tactile
            TouchCollection touchCollection = TouchPanel.GetState();

            // On test si l'�cran est touch� ou non, si oui on r�cup�re les coordonn�e du premier point de contact
            if (touchCollection.Count >= 1)
            {
                _TouchPosition = (touchCollection[0].Position);
            }

            // On ajoute le temps de l'Update au temps total d'affichage du menu
            fltTotalTime += deltatime;

            // On test si l'utilisateur appuie sur un des "boutons" (start game / score)

            // Test si dans la bonne zone en largeur
            if (_TouchPosition.X > 280 && _TouchPosition.X < 510)
            {
                // Test si dans la zone du bouton "Start Game"
                if (_TouchPosition.Y > 290 && _TouchPosition.Y < 340)
                {
                    Globals.intStarCount = 0;
                    Globals.GameStateStack.Set(new PlayGame());
                }
                // Sinon test si dans la zone du bouton Score
                else if (_TouchPosition.Y > 340 && _TouchPosition.Y < 390)
                {
                    Globals.intStarCount = 0;
                    Globals.GameStateStack.Set(new ShowScores());
                }
            }

            // On compte le nombre d'�toile actuellement affich�e, si - de 4, on en rajoute
            if (Globals.intStarCount < 4)
            {
                DrawStar tmpDrawStar = new DrawStar(fltTotalTime);
                lstStars.Add(tmpDrawStar);
                Globals.intStarCount += 1;
            }

            // On met � jour l'affichage des �toiles
            foreach (DrawStar currentStar in lstStars)
            {
                currentStar.Update(deltatime, fltTotalTime);
            }
        }
コード例 #3
0
        public override void Update(float deltatime)
        {
            // Retour au menu
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            {
                Globals.intStarCount = 0;
                Globals.GameStateStack.Set(new MainMenu());
            }

            // R�cup�ration de l'�tat de l'�cran tactile
            TouchCollection touchCollection = TouchPanel.GetState();

            // On test si l'�cran est touch� ou non, si oui on r�cup�re les coordonn�e du premier point de contact
            if (touchCollection.Count >= 1)
            {
                _TouchPosition = (touchCollection[0].Position);
            }

            if (_TouchPosition.X > 650 && _TouchPosition.X < 710)
            {
                if (_TouchPosition.Y > 160 && _TouchPosition.Y < 290)
                {
                    if (intCurrentScore >= 3)
                    {
                        intCurrentScore -= 3;
                    }
                }
                else if (_TouchPosition.Y > 290 && _TouchPosition.Y < 425)
                {
                    if (intCurrentScore < (intNbScore - 3))
                    {
                        intCurrentScore += 3;
                    }
                }
            }

            // On ajoute le temps de l'Update au temps total d'affichage du menu
            fltTotalTime += deltatime;

            // On compte le nombre d'�toile actuellement affich�e, si - de 4, on en rajoute
            if (Globals.intStarCount < 4)
            {
                DrawStar tmpDrawStar = new DrawStar(fltTotalTime);
                lstStars.Add(tmpDrawStar);
                Globals.intStarCount += 1;
            }

            // On met � jour l'affichage des �toiles
            foreach (DrawStar currentStar in lstStars)
            {
                currentStar.Update(deltatime, fltTotalTime);
            }
        }
コード例 #4
0
        public override void Update(float deltatime)
        {
            // Mettre le jeu en pause
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            {
                Globals.intStarCount = 0;
                _soundNyan.Stop();
                Globals.GameStateStack.Set(new MainMenu());
            }

            // R�cup�ration de l'�tat de l'�cran tactile
            TouchCollection touchCollection = TouchPanel.GetState();

            if (touchCollection.Count >= 1)
            {
                blnHasTouched = true;
            }

            if (!blnHasHit && blnHasTouched)
            {
                fltTotalTime      += deltatime;
                intScore          += (int)fltTotalTime;
                strScore           = "" + intScore;
                vecScoreSize       = Globals.ArialFont.MeasureString(strScore) * 2;
                vecScorePosition.X = 750 - vecScoreSize.X;
                vecScorePosition.Y = 50;

                // On test si l'�cran est touch� ou non, si oui le perso monte, sinon il descend
                if (touchCollection.Count >= 5)
                {
                    Nyan.ChangeSkin();
                }
                if (touchCollection.Count >= 1)
                {
                    if ((Nyan._vec2_NyanPos.Y - 10) >= 0)
                    {
                        Nyan._vec2_NyanPos.Y -= 10;
                        foreach (DrawCourse currentSky in lstSky)
                        {
                            blnHasHit = Nyan._rec_Destination.Intersects(currentSky._recDestination);
                            if (blnHasHit)
                            {
                                Nyan._vec2_NyanPos.Y = currentSky.fltPosY + 151;
                                break;
                            }
                        }
                    }
                }
                else if ((Nyan._vec2_NyanPos.Y + 8) < (480 - Nyan._tex_NyanCat.Height))
                {
                    Nyan._vec2_NyanPos.Y += 8;
                    foreach (DrawCourse currentGround in lstGround)
                    {
                        blnHasHit = Nyan._rec_Destination.Intersects(currentGround._recDestination);
                        if (blnHasHit)
                        {
                            Nyan._vec2_NyanPos.Y = currentGround.fltPosY - 81;
                            break;
                        }
                    }
                }

                Nyan.Update();

                // On test le nombre d'�toiles actuellement affich�es
                if (Globals.intStarCount < 4)
                {
                    DrawStar tmpDrawStar = new DrawStar(fltTotalTime);
                    lstStars.Add(tmpDrawStar);
                    Globals.intStarCount += 1;
                }


                // On actualise la position des bouts d'arc-en-ciels
                for (int x = 0; x < INT_NB_RAINBOW; x++)
                {
                    if (lstRainbow[x] != lstRainbow[INT_NB_RAINBOW - 1])
                    {
                        lstRainbow[x].Update(deltatime, lstRainbow[x + 1].intPubPosY);
                    }
                }

                lstRainbow[INT_NB_RAINBOW - 1].Update(deltatime, (int)Nyan._vec2_NyanPos.Y);

                // On actualise les �toiles
                foreach (DrawStar currentStar in lstStars)
                {
                    currentStar.Update(deltatime, fltTotalTime);
                }

                // On actualise les positions du sol
                for (int x = 0; x < INT_NB_GROUND; x++)
                {
                    if (lstGround[x] != lstGround[INT_NB_GROUND - 1])
                    {
                        lstGround[x].Update(deltatime, lstGround[x + 1].fltPosY);
                    }
                }

                float fltTemp = rand.Next(-1, 1);
                if (fltTemp < 0 && vecGroundPosition.Y < 455)
                {
                    vecGroundPosition.Y += 10;
                }
                else if (vecGroundPosition.Y > 350)
                {
                    vecGroundPosition.Y -= 10;
                }
                lstGround[INT_NB_GROUND - 1].Update(deltatime, vecGroundPosition.Y);

                // On actualise les positions du ciel
                for (int x = 0; x < INT_NB_SKY; x++)
                {
                    if (lstSky[x] != lstSky[INT_NB_SKY - 1])
                    {
                        lstSky[x].Update(deltatime, lstSky[x + 1].fltPosY);
                    }
                }

                float fltTempSky = rand.Next(-1, 1);
                if (fltTempSky < 0 && vecSkyPosition.Y < -10)
                {
                    vecSkyPosition.Y += 10;
                }
                else if (vecSkyPosition.Y > -115)
                {
                    vecSkyPosition.Y -= 10;
                }
                lstSky[INT_NB_SKY - 1].Update(deltatime, vecSkyPosition.Y);
            }
            else if (blnHasHit)
            {
                Globals.intStarCount = 0;
                _soundNyan.Stop();
                Globals.intLastScore = intScore;
                Globals.GameStateStack.Set(new GameOver());
            }
        }