예제 #1
0
        public void Update(LeapLibrary.LeapComponet leap)
        {
            for (int i = 0; i < NbBordures; i++)
            {
                TabBordure[i].Update(leap);
                if (i > 0) /* Probleme de decalage quand trop rapide */
                {
                    Bordure LastBordure    = TabBordure[i - 1];
                    Bordure CurrentBordure = TabBordure[i];

                    float DistanceX = Math.Abs(LastBordure.Position.X - CurrentBordure.Position.X);
                    if ((DistanceX > EcartEntreBordure || DistanceX < EcartEntreBordure) && DistanceX < CurrentBordure.PositionMax)
                    {
                        TabBordure[i].Position.X += EcartEntreBordure - DistanceX;
                    }
                }
            }

            for (int i = 0; i < GrandsArbre.Length; i++)
            {
                GrandsArbre[i].Update(leap);
                if (i > 0)
                {
                    Arbre LastArbre    = GrandsArbre[i - 1];
                    Arbre CurrentArbre = GrandsArbre[i];

                    float DistanceX = Math.Abs(LastArbre.Position.X - CurrentArbre.Position.X);
                    if ((DistanceX > EcartEntreGrandArbres || DistanceX < EcartEntreGrandArbres) && DistanceX < 700)
                    {
                        GrandsArbre[i].Position.X += EcartEntreGrandArbres - DistanceX;
                    }
                }
            }

            for (int i = 0; i < PetitsArbre.Length; i++)
            {
                PetitsArbre[i].Update(leap);
                if (i > 0)
                {
                    Arbre LastArbre    = PetitsArbre[i - 1];
                    Arbre CurrentArbre = PetitsArbre[i];

                    float DistanceX = Math.Abs(LastArbre.Position.X - CurrentArbre.Position.X);
                    if ((DistanceX > EcartEntrePetitsArbres || DistanceX < EcartEntrePetitsArbres) && DistanceX < CurrentArbre.PositionMax && DistanceX < 600)
                    {
                        PetitsArbre[i].Position.X += EcartEntrePetitsArbres - DistanceX;
                    }
                }
            }
        }
예제 #2
0
        public void Update(LeapLibrary.LeapComponet leap)
        {
            float AjoutVitesse = 0;

            if (leap.FirstHand != null)
            {
                AjoutVitesse = leap.FirstHand.PalmNormal.Roll * 3;
            }

            Vitesse = StaticInfo.InitialSpeed_Nuage - AjoutVitesse;
            if (Vitesse < StaticInfo.InitialSpeed_Nuage)
            {
                Vitesse = StaticInfo.InitialSpeed_Nuage;
            }

            Position.X -= Vitesse;

            if (Position.X <= PositionMin)
            {
                Position.X = PositionMax;
            }
        }
예제 #3
0
        public void Update(LeapLibrary.LeapComponet leap)
        {
            if (leap.FirstHand != null)
            {
                Position.X = (leap.FirstHand.PalmPosition.x / 120.0f) * 900;
                Position.Y = (leap.FirstHand.PalmPosition.z / 130.0f) * 900;

                for (int i = 0; i < leap.Gestures.Count; i++)
                {
                    Leap.Gesture gesture = leap.Gestures[i];

                    switch (gesture.Type)
                    {
                    case Leap.Gesture.GestureType.TYPECIRCLE:
                        StaticInfo.cptTimerProjectile += StaticInfo.SpeedTimerProjectile;
                        if (StaticInfo.cptTimerProjectile > 1.0f)
                        {
                            StaticInfo.cptTimerProjectile = 0;
                            ListBananes.Add(new ProjectileBanane(Position, StaticInfo.MonkeySpeedBanane));
                        }
                        break;
                    }
                }
            }


            Position.X += Convert.ToInt32(Keyboard.GetState().IsKeyDown(Keys.D)) * 15;
            Position.X -= Convert.ToInt32(Keyboard.GetState().IsKeyDown(Keys.A)) * 15;
            Position.Y += Convert.ToInt32(Keyboard.GetState().IsKeyDown(Keys.S)) * 15;
            Position.Y -= Convert.ToInt32(Keyboard.GetState().IsKeyDown(Keys.W)) * 15;

            if (Position.X < StaticInfo.LimiteInf.X)
            {
                Position.X = StaticInfo.LimiteInf.X;
            }
            if (Position.Y < StaticInfo.LimiteInf.Y)
            {
                Position.Y = StaticInfo.LimiteInf.Y;
            }
            if (Position.X > StaticInfo.LimiteSup.X)
            {
                Position.X = StaticInfo.LimiteSup.X;
            }
            if (Position.Y > StaticInfo.LimiteSup.Y)
            {
                Position.Y = StaticInfo.LimiteSup.Y;
            }

            //if(leap.FirstHand.pal->RPalmStrength > 0.75f)
            //if (leap.FirstHand.Finger(1).IsValid )

            for (int i = 0; i < ListBananes.Count; i++)
            {
                ListBananes[i].Update();
                if (ListBananes[i].Delete)
                {
                    ListBananes.RemoveAt(i);
                    i--;
                }
            }

            RecCollision.X = ((int)Position.X - RecCollision.Width / 2);
            RecCollision.Y = ((int)Position.Y - RecCollision.Height);

            FWheelAP.PlayAnimation(FWheelA);
            BWheelAP.PlayAnimation(BWheelA);
            PlayerAP.PlayAnimation(PersoA);
            YeuxAP.PlayAnimation(YeuxA);

            base.Udpate(RecCollision);
        }