示例#1
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (Selected)
            {
                scaleTimer += gttf(dt) * ScaleSpeed;
                if (scaleTimer > 1)
                {
                    scaleTimer = 1.0f;
                }

                UniformScale = JabMath.MoveTowards(UniformScale, ScaleOnHover, gttf(dt) * 5.0f, 0.01f);
            }
            else
            {
                scaleTimer -= gttf(dt) * ScaleSpeed;
                if (scaleTimer < 0)
                {
                    scaleTimer = 0.0f;
                }

                UniformScale = JabMath.MoveTowards(UniformScale, RegularScale, gttf(dt) * 5.0f, 0.01f);
            }

            //UniformScale = JabMath.LinearInterpolate(RegularScale, ScaleOnHover, scaleTimer);
        }
示例#2
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            currentPlayPos = AudioManager.PlayingMusicPosition;
            for (int i = 0; i < frames.Count; i++)
            {
                frames[i].sprite.PosX = i * BaseGame.Get.BackBufferWidth + shiftx;
            }

            shiftx = JabMath.MoveTowards(shiftx, newShiftXTarget, gttf(dt) * 3.0f, 150);
            if (shiftx == newShiftXTarget && shiftWhen.Count == 0)
            {
                RaiseFlag(Flags.DELETE);
                WorldSelectScreen s = new WorldSelectScreen();
                s.Initialize(Content);
                s.SetCurrentCountry("uluru");
                ScreenManager.Get.AddScreen(s);
            }
            timer += gttf(dt);
            if (shiftWhen.Count > 0)
            {
                if (currentPlayPos > shiftWhen[0] || (!AudioManager.MusicPlaying && timer > shiftWhen[0]))// || (shiftx == 0 && timer > 4.6f))
                {
                    shiftWhen.RemoveAt(0);
                    newShiftXTarget -= BaseGame.Get.BackBufferWidth;
                }
            }
            lastPlayPos = AudioManager.PlayingMusicPosition;
        }
示例#3
0
        void SetScale()
        {
            float posx = PosX;

            float targetX = targetAreaPos.X;
            float originX = originPos.X;

            if (posx < originX)
            {
                posx = originX;
            }
            else if (posx > targetX)
            {
                posx = targetX;
            }

            float distBetween = Math.Abs(targetX - originX);

            targetX -= originX;
            posx    -= originX;

            posx /= targetX;

            if (UniformWorldScale > JabMath.LinearInterpolate(scaleAtTarget, scaleAtTarget, posx))
            {
                UniformWorldScale = JabMath.LinearInterpolate(scaleAtTarget, scaleAtTarget, posx);
            }
            else if (UniformWorldScale < maxCamScale)
            {
                UniformWorldScale = JabMath.MoveTowards(UniformWorldScale, maxCamScale, 0.05f, 0.01f);// JabMath.LinearInterpolate(UniformWorldScale, maxCamScale, posx); //maxCamScale;
            }
            targetPos.Y = JabMath.LinearInterpolate(originPos.Y, targetPos.Y, posx);
        }
示例#4
0
        static public float RandomFloatGravitate(float val)
        {
            float retval = RandomFloat;

            retval += JabMath.LinearInterpolate(0, val - retval, RandomFloat);
            return(retval);
        }
示例#5
0
        static public float RandomFloatInRangeGravitate(float min, float max, float gravitate)
        {
            float retval = (float)BaseGame.Random.NextDouble() * (max - min) + min;

            retval += JabMath.LinearInterpolate(0, gravitate - retval, RandomFloat);
            return(retval);
        }
示例#6
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);
            GlobalXFudge = 55.0f / 2.0f * ScaleFactor;
            return;

            if (!CheckFlag(Flags.FADE_OUT))
            {
                GlobalXFudge = JabMath.MoveTowards(GlobalXFudge, 55.0f / 2.0f * ScaleFactor, gttf(dt) * 2.5f, 1.5f);

                float totalDistToTravel = (-100.0f / 2.0f * ScaleFactor) - (55.0f / 2.0f * ScaleFactor);
                totalDistToTravel = Math.Abs(totalDistToTravel);

                float distTravelled = (-100.0f / 2.0f * ScaleFactor) - GlobalXFudge;
                distTravelled = Math.Abs(distTravelled);

                Colour = Color.White * (distTravelled / totalDistToTravel);
            }
            else
            {
                GlobalXFudge = JabMath.MoveTowards(GlobalXFudge, -100.0f / 2.0f * ScaleFactor, gttf(dt) * 2.5f, 1.5f);

                float totalDistToTravel = (-100.0f / 2.0f * ScaleFactor) - (55.0f / 2.0f * ScaleFactor);
                totalDistToTravel = Math.Abs(totalDistToTravel);

                float distTravelled = (-100.0f / 2.0f * ScaleFactor) - GlobalXFudge;
                distTravelled = Math.Abs(distTravelled);

                Colour = Color.White * (1.0f - (distTravelled / totalDistToTravel));
            }
        }
示例#7
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            distTravelled += Body.LinearVelocity.Length();
            if (AsType.UniformScale < 0.69f)
            {
                AsType.UniformScale = JabMath.MoveTowards(AsType.UniformScale, 0.7f, 0.25f);
            }
            else
            {
                AsType.UniformScale = 0.7f;
            }
            if (distTravelled > 32)
            {
                Body.CollisionGroup = 0;
            }

            if (destructionTimer > 0)
            {
                destructionTimer -= gttf(gameTime);
                if (destructionTimer < 0)
                {
                    RaiseFlag(Jabber.Flags.DELETE);


                    Explosion exp = new Explosion(10, 300, 1.0f, 0.7f, scene.World, Position);
                    Body.IgnoreRayCast = true;
                    exp.Initialize(Jabber.BaseGame.Get.Content);
                    exp.Position = Position;
                    scene.AddNode(exp);
                    RaiseFlag(Jabber.Flags.DELETE);
                    Body.IgnoreRayCast = false;

                    AudioQueue.PlayOnce("Sounds/Explode_Chicken");
                }
                else
                {
                    float val = destructionTimer;
                    Colour = new Color(1.0f, val, val, 1.0f);

                    // AsType.UniformScale = (float)Math.Sin(destructionTimer * 5.0f * JabMath.PI) + 1;

                    AsType.UniformScale = JabMath.LinearInterpolate(0.8f, 0.85f, (float)Math.Sin(destructionTimer * 5.0f * JabMath.PI) + 1);
                    DoDimensions        = false;
                    int k = 0;
                }
            }
            if (Body.LinearVelocity.Length() < 0.001f)
            {
                noMoveTimer += gttf(gameTime);
                if (noMoveTimer > 1.0f && destructionTimer < 0)
                {
                    destructionTimer = 1.0f;
                }
            }
            else
            {
                noMoveTimer = 0.0f;
            }
        }
示例#8
0
        public void UpMoveCamPos()
        {
            float posx = PosX;

            float targetX = targetAreaPos.X;
            float originX = originPos.X;

            if (posx < originX)
            {
                posx = originX;
            }
            else if (posx > targetX)
            {
                posx = targetX;
            }

            float distBetween = Math.Abs(targetX - originX);

            targetX -= originX;
            posx    -= originX;

            posx /= targetX;


            PosY = targetPos.Y = JabMath.LinearInterpolate(originPos.Y, targetAreaPos.Y, posx);

            float lowestPoint = -512.0f;

            if (ScreenToWorld(Vector2.One).Y < lowestPoint)
            {
                PosY = targetPos.Y = PosY = PosY + (lowestPoint - ScreenToWorld(Vector2.One).Y);
            }
        }
示例#9
0
        public void AddRectangle(Vector3 pos, Vector2 dimensions, float rot)
        {
            Vector3 vert = new Vector3(0, 0, pos.Z);

            // bottom left corner
            vert.X = -dimensions.X / 2.0f;
            vert.Y = -dimensions.Y / 2.0f;

            vert  = new Vector3(JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).X, JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).Y, pos.Z);
            vert += pos;

            AddVertex(vert);

            // bottom right corner
            vert.X = dimensions.X / 2.0f;
            vert.Y = -dimensions.Y / 2.0f;
            vert   = new Vector3(JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).X, JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).Y, pos.Z);
            vert  += pos;

            AddVertex(vert);

            // top left corner
            vert.X = -dimensions.X / 2.0f;
            vert.Y = dimensions.Y / 2.0f;
            vert   = new Vector3(JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).X, JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).Y, pos.Z);
            vert  += pos;

            AddVertex(vert);


            rot += 1.0f * (float)Math.PI;

            // bottom left corner
            vert.X = -dimensions.X / 2.0f;
            vert.Y = -dimensions.Y / 2.0f;

            vert  = new Vector3(JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).X, JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).Y, pos.Z);
            vert += pos;

            AddVertex(vert);

            // bottom right corner
            vert.X = dimensions.X / 2.0f;
            vert.Y = -dimensions.Y / 2.0f;
            vert   = new Vector3(JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).X, JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).Y, pos.Z);
            vert  += pos;

            AddVertex(vert);

            // top left corner
            vert.X = -dimensions.X / 2.0f;
            vert.Y = dimensions.Y / 2.0f;
            vert   = new Vector3(JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).X, JabMath.RotateVector(new Vector2(vert.X, vert.Y), rot).Y, pos.Z);
            vert  += pos;

            AddVertex(vert);
        }
示例#10
0
        public override void Update(GameTime dt)
        {
            if (!ChicksnVixensGame.Get.IsLocationUnlocked(worldLocations[curLocation]))
            {
                Vector4 col = locked.Colour.ToVector4();
                col.W         = JabMath.LinearMoveTowards(col.W, 1.0f, gttf(dt));
                locked.Colour = new Color(col.W, col.W, col.W, col.W);
            }
            else
            {
                Vector4 col = locked.Colour.ToVector4();
                col.W         = JabMath.LinearMoveTowards(col.W, 0.0f, gttf(dt));
                locked.Colour = new Color(col.W, col.W, col.W, col.W);
            }
            if (blank != null)
            {
                if (blank.StateFlag == Jabber.StateFlag.FADE_IN_COMPLETE)
                {
                    OnFadeOutComplete();
                }
            }
            if (IsTopScreen || ScreenManager.Get.TopScreen.CheckFlag(Flags.FADE_OUT))
            {
                /*
                 * if (Cam.TargetPos == Cam.Position)
                 * {
                 *  Cam.targetScale = 1.8f;
                 * }*/
                Cam.LevelSelect = false;
            }
            else if (!IsTopScreen)
            {
                Cam.LevelSelect = true;
                Cam.targetScale = 1.2f;
            }
            if (loadLocation)
            {
                LevelSelectScreen screen = new LevelSelectScreen(worldLocations[curLocation]);//  currentLocation.location);
                screen.Initialize(Content);
                ScreenManager.Get.AddScreen(screen);
                Cam.targetScale = 1.2f;
                Cam.LevelSelect = true;
                EventManager.Get.SendEvent(new ScreenFadeOutEvent(this));
                loadLocation = false;
                if (playLocationSetSFX)
                {
                    AudioManager.PlayOnce("Sounds/CountrySelect");
                }

                playLocationSetSFX = true;
            }
#if WINDOWS_PHONE
            AdSystem.TargetTop = false;
#endif
            base.Update(dt);
        }
示例#11
0
        public override void OnRelease(Vector2 pos)
        {
            base.OnRelease(pos);

            float dif = targetDrag - finalDragPos;

            targetDrag   = JabMath.RoundToNearest(targetDrag * BaseGame.Get.BackBufferWidth + dif * 1400 * ScaleFactor, (int)(BaseGame.Get.BackBufferWidth)) / BaseGame.Get.BackBufferWidth;
            pressingDown = false;

            finalDragPos = targetDrag;
        }
示例#12
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            Timer += gttf(dt) * 5.0f;
            if (Timer > 1.0f)
            {
                RaiseFlag(Flags.DELETE);
                Timer = 1.0f;
            }
            Colour = Color.White * (1.0f - Timer);
            Width  = Height = JabMath.MoveTowards(Width, maxRadius, gttf(dt) * 20.0f) * maxRadiusScale;
        }
示例#13
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (CheckFlag(Flags.FADE_OUT))
            {
                fadeTimer = JabMath.MoveTowards(fadeTimer, 0, gttf(dt) * 4);
            }
            else if (CheckFlag(Flags.FADE_IN))
            {
                fadeTimer = JabMath.MoveTowards(fadeTimer, 1, gttf(dt) * 6);
            }
        }
示例#14
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            fadeInTimer += gttf(dt);
            if (fadeInTimer > 1)
            {
                fadeInTimer = 1.0f;
            }

            Colour = Color.Black * 1 * 0.4f;
            Height = JabMath.MoveTowards(Height, BaseGame.Get.BackBufferHeight, gttf(dt) * 15, 10);
        }
示例#15
0
        public override void Update(GameTime dt)
        {
            if (firstUpdate)
            {
                AudioManager.StopTheMusic();
                AudioManager.PlayMusic("francemusic");
                firstUpdate = false;
            }

            base.Update(dt);

            if (AudioManager.PlayingMusicPosition > 11.7)
            {
                longstrip.PosX = -Jabber.BaseGame.Get.BackBufferWidth / 2.0f;
                timer1         = 1;
                timer2         = 1;
            }

            if (timer1 < 1)
            {
                timer1 += gttf(dt) / 3.0f;
            }
            else if (timer2 < 1)
            {
                longstrip.PosX = JabMath.LinearMoveTowards(longstrip.PosX, -Jabber.BaseGame.Get.BackBufferWidth / 2.0f, gttf(dt) * 150 * ScaleFactor);

                if (longstrip.PosX == -Jabber.BaseGame.Get.BackBufferWidth / 2.0f)
                {
                    timer2 += gttf(dt) / 3.0f;
                }
            }
            else
            {
                timer3 += gttf(dt);
                if (timer3 > 4.0f)
                {
                    Vector4 col = finalimage.Colour.ToVector4();
                    float   a   = JabMath.LinearMoveTowards(col.W, 0.0f, gttf(dt));
                    finalimage.Colour = new Color(a, a, a, a);

                    if (a == 0)
                    {
                        RaiseFlag(Flags.DELETE);
                        WorldSelectScreen s = new WorldSelectScreen();
                        s.Initialize(BaseGame.Get.Content);
                        s.SetCurrentCountry("paris");
                        ScreenManager.Get.AddScreen(s);
                    }
                }
            }
        }
示例#16
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (score == null)
            {
                for (int i = 0; i < scene.Nodes.Count; i++)
                {
                    if (scene.Nodes[i] is DonutScore)
                    {
                        score = scene.Nodes[i] as DonutScore;
                    }
                }
            }

            box.Position = Position;

            if (!Chosen)
            {
                if (InFan)
                {
                    Timer += gttf(dt) * 2.0f;
                    PosY  += JabMath.Sin(Timer) * WindWeakness;

                    if (Timer > 2 * JabMath.PI)
                    {
                        ;
                    }
                    Timer -= 2 * JabMath.PI;
                }
                else
                {
                    Timer += gttf(dt) * 4.0f;
                    PosY  += JabMath.Sin(Timer) * 0.25f;
                }
            }
            else
            {
                Position = JabMath.LinearMoveTowards(Position, score.ScaledPos, gttf(dt) * 1000.0f / Camera.Get.UniformWorldScale);

                UniformScale = JabMath.LinearMoveTowards(UniformScale, score.ScaledScale, gttf(dt) / Camera.Get.UniformWorldScale);

                if (Position == score.ScaledPos && !CheckFlag(Flags.DELETE))
                {
                    RaiseFlag(Flags.DELETE);
                    score.IncrementScore();
                }
            }

            InFan = false;
        }
示例#17
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (lastPos != targetPos && !LevelSelect)
            {
                float totalLength = (lastPos - targetPos).Length();
                float curLength   = (Position - targetPos).Length();
                float prop        = 1.0f - curLength / totalLength;


                float interp = JabMath.Sin(curLength * JabMath.PI / totalLength);

                if (curLength == 0 && UniformWorldScale != minScale)
                {
                    if (lastcurLength != 0)
                    {
                        lastcurLength     = 0;
                        UniformWorldScale = minScale;
                    }
                    else
                    {
                        UniformWorldScale = JabMath.MoveTowards(UniformWorldScale, minScale, gttf(dt) * 5.0f, 0.001f);
                    }
                }
                else if (curLength != 0)
                {
                    lastcurLength = curLength;
                    if (totalLength < 300)
                    {
                        UniformWorldScale = JabMath.LinearInterpolate(minScale, 1.5f, interp);
                    }
                    else
                    {
                        UniformWorldScale = JabMath.LinearInterpolate(minScale, 0.8f, interp);
                    }
                }
            }
            else if (LevelSelect)
            {
                UniformWorldScale = JabMath.MoveTowards(UniformWorldScale, targetScale, gttf(dt) * 5.0f, 0.001f);
            }
            else
            {
                UniformWorldScale = JabMath.MoveTowards(UniformWorldScale, minScale, gttf(dt) * 5.0f, 0.001f);
            }
            Position = JabMath.MoveTowards(Position, targetPos, gttf(dt) * 5.0f, 5.0f);
        }
示例#18
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (!(CheckFlag(Flags.FADE_IN) || CheckFlag(Flags.FADE_OUT)) && CheckStateFlag(StateFlag.FADE_IN_COMPLETE))
            {
                if (IsPressing)
                {
                    UniformScale = JabMath.LinearMoveTowards(UniformScale, 0.8f * ScaleFactor / Camera.Get.UniformWorldScale * 1.15f, gttf(dt) * 0.8f);
                }
                else
                {
                    float target = 0.8f * ScaleFactor / Camera.Get.UniformWorldScale;
                    UniformScale = JabMath.LinearMoveTowards(UniformScale, target, gttf(dt));
                }
            }
            else
            {
                UniformScale = 0.8f * ScaleFactor / Camera.Get.UniformWorldScale;
            }

            if (!(CheckFlag(Flags.FADE_IN) || CheckFlag(Flags.FADE_OUT)) && CheckStateFlag(StateFlag.FADE_IN_COMPLETE))
            {
                text.UniformScale = ScaleFactor / Camera.Get.UniformWorldScale * UniformScale * 1.2f;
            }
            else
            {
                text.UniformScale = ScaleFactor / Camera.Get.UniformWorldScale;
            }

            float alpha = JabMath.LinearInterpolate(1.0f, 0.0f, (Camera.Get.UniformWorldScale - 1) / 2.0f);

            if (lastAlpha != alpha)
            {
                if (alpha == 0)
                {
                    OnFadeOutComplete();
                }
                else if (alpha == 1)
                {
                    OnFadeInComplete();
                }
            }

            lastAlpha   = alpha;
            Colour      = new Color(alpha, alpha, alpha, alpha);
            text.Colour = Color.Red * alpha;
        }
示例#19
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            Dictionary <float, float> dic = new Dictionary <float, float>();

            dic.Add(-0.1f * BaseGame.Get.BackBufferWidth, 3);
            dic.Add(0.0f * BaseGame.Get.BackBufferWidth, 3);
            dic.Add(0.1f * BaseGame.Get.BackBufferWidth, 3);
            for (int i = 0; i < stars.Count; i++)
            {
                stars[i].PosX = stars[i].TargetPos.X;
                stars[i].PosY = JabMath.MoveTowards(stars[i].PosY, stars[i].TargetPos.Y,
                                                    gttf(dt) * dic[stars[i].PosX], 3);
            }
        }
示例#20
0
        public override void Draw()
        {
            if (ChicksnVixensGame.Get.UseTrajectory)
            {
                for (int i = 0; i < trajectorypositions.Count; i++)
                {
                    trajectory.Position = trajectorypositions[i];
                    trajectory.Draw();
                }
            }

            baseBarrel.Position = position + new Vector2(0, 10);
            baseBarrel.Draw();

            base.Draw();

            if (!ChicksnVixensGame.Get.UseTrajectory)
            {
                if (fingerDraggingOnMe && currentFireDir.Length() != 0)
                {
                    arrow.Handle   = SpriteHandle.CENTERLEFT;
                    arrow.Position = position;
                    Vector2 dir = currentFireDir;
                    dir.Normalize();
                    float angle = -JabMath.ATan2(dir.Y, dir.X);
                    arrow.Rot    = angle;
                    arrow.Width  = currentFireDir.Length() * 10;
                    arrow.Height = 100;
                    arrow.Draw();
                }
            }



            if (!smoke.CheckFlag(Jabber.Flags.PASSRENDER))
            {
                //Vector2 oldpos = smoke.Position;
                //smoke.Position = Camera.Get.Position;
                smoke.Draw();


                //smoke.Position = baseBarrel.Position + FireDir * baseBarrel.Width / 2.0f;
                //smoke.Draw();
            }

            //DrawRect();
        }
示例#21
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            // Rot = 0;// -0.25f * JabMath.PI;// 1.0f * JabMath.PI;// gttf(gameTime);

            /*
             * Vector2 toCamera = (Position - Camera.Get.Position);
             * float dist = toCamera.Length();
             * dist /= 2000.0f;
             * if (dist > 1.0f || !Camera.Get.IsVisible(this))
             * {
             *  dist = 1.0f;
             * }
             * dist = 1.0f - dist;*/

            float closestChicken = float.MaxValue;

            for (int i = 0; i < world.Actors.Count; i++)
            {
                if (world.Actors[i].UserData is Chicken)
                {
                    if ((Position - world.Actors[i].Position).Length() < closestChicken && world.Actors[i].LinearVelocity.Length() > 5.0f)
                    {
                        closestChicken = (Position - world.Actors[i].Position).Length();
                    }
                }
            }
            if (closestChicken < 500 && closestChicken > 0)
            {
                FanSound.Volume = (500 - closestChicken) / 500.0f;
            }
            else
            {
                FanSound.Volume = 0.0f;
            }

            placeholder.Position = Position;
            placeholder.Rot      = Rot;

            box.Rot = placeholder.Rot;
            Vector2 airDir = new Vector2(JabMath.Sin(Rot), JabMath.Cos(Rot));

            box.Position = (placeholder.Position + airDir * box.Height / 2.0f) - (100 * airDir);
            for (int i = 0; i < world.Actors.Count; i++)
            {
            }
        }
示例#22
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            Body.UserData = this;

            if (health <= 0)
            {
                health = 0;
                if (!SplintersCreated)
                {
                    CreateSplinters();
                    SplintersCreated = true;
                }

                RaiseFlag(Jabber.Flags.DELETE);
                Body.CollisionGroup = BodyNoneCollisionGroup;
                Body.IgnoreRayCast  = true;
            }

            if (InFan)
            {
                Body.LinearVelocity = new Vector2(Body.LinearVelocity.X, 0);
                if (!InBentFan)
                {
                    Body.LinearDamping = 150.0f;
                }

                if (fanTimer == 0)
                {
                    fanTimer = RandomFloat * 2.0f * JabMath.PI;
                }
                fanTimer  += gttf(gameTime) * 2.0f;
                Body.PosY += JabMath.Sin(fanTimer) / 3.0f;
            }
            else
            {
                Body.BodyState = JabActor.BodyType.DYNAMIC;
                //Body.AngularDamping = Body.LinearDamping = 0.5f;
                Body.LinearDamping = Body.AngularDamping = JabMath.MoveTowards(Body.LinearDamping, 0.75f, gttf(gameTime) * 3.0f);
            }
            if (InFan || InBentFan)
            {
                Body.AngularDamping = 20.0f;
            }
            InFan     = false;
            InBentFan = false;
        }
示例#23
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);
            PosY = -13.0f * ScaleFactor;

            if (CheckFlag(Jabber.Flags.FADE_IN) && !CheckFlag(Jabber.Flags.FADE_OUT))
            {
                fadeTimer += gttf(dt) * 2.0f;
                if (fadeTimer > 1)
                {
                    fadeTimer = 1;
                }
                UniformWorldScale = JabMath.MoveTowards(UniformWorldScale, 0.99f, gttf(dt) * 6);
                if (UniformWorldScale <= 1.0f)
                {
                    UniformWorldScale = 1.0f;
                    LowerFlag(Jabber.Flags.FADE_IN);
                }
            }
            else if (CheckFlag(Jabber.Flags.FADE_OUT))
            {
                LowerFlag(Jabber.Flags.FADE_IN);

                UniformWorldScale = JabMath.MoveTowards(UniformWorldScale, 3.1f, gttf(dt) * 6);
                if (UniformWorldScale >= 3.0f)
                {
                    UniformWorldScale = 3.0f;
                    LowerFlag(Jabber.Flags.FADE_OUT);
                    OnFadeOutComplete();
                }
            }


            if (pressingDown)
            {
                xOffset = targetDrag * BaseGame.Get.BackBufferWidth;
            }
            else
            {
                xOffset = JabMath.MoveTowards(xOffset, targetDrag * BaseGame.Get.BackBufferWidth, gttf(dt) * 5);
            }
            Camera.Get.PosX = -xOffset;
        }
示例#24
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            score.Position      = ScaledPos + new Vector2(Width / 1.5f * ScaledScale, 0);
            score.UniformScale  = ScaledScale * 1.25f + scoreWooTimer / Camera.Get.UniformWorldScale;
            score.UniformScale *= 0.5f;
            score.Colour        = Color.Tomato;

            UniformScale  = (scoreWooTimer / Camera.Get.UniformWorldScale) * 0.2f + 1;
            UniformScale *= ScaleFactor;
            UniformScale *= 0.5f;


            if (scoreWooTimer > 0)
            {
                scoreWooTimer = JabMath.LinearMoveTowards(scoreWooTimer, 0.0f, gttf(dt));
            }
        }
示例#25
0
        public override void  Update(GameTime dt)
        {
            inRoutine = !CheckFlag(Flags.FADE_OUT);

            if (!inRoutine && !firstDroppedBelow)
            {
                inRoutine = true;
            }
            if (fadeInTimer != 1 && CheckFlag(Flags.FADE_IN))
            {
                fadeInTimer = JabMath.MoveTowards(fadeInTimer, 1.0f, gttf(dt) * 6, 0.01f);
                if (fadeInTimer == 1.0f)
                {
                    OnFadeInComplete();
                }
            }
            else if (fadeInTimer != 0 && CheckFlag(Flags.FADE_OUT) && !inRoutine)
            {
                fadeInTimer = JabMath.MoveTowards(fadeInTimer, 0.0f, gttf(dt) * 3, 0.01f);
            }
            if (CheckFlag(Flags.FADE_OUT) && feathers.Count == 0)
            {
                OnFadeOutComplete();
                RaiseFlag(Flags.DELETE);
            }
            for (int i = 0; i < feathers.Count; i++)
            {
                feathers[i].Update(dt);
            }
            if (CheckFlag(Flags.FADE_OUT) && !inRoutine)
            {
                featherFadeOutAlpha -= gttf(dt) / 5.0f * ScaleFactor;
                if (featherFadeOutAlpha < 0)
                {
                    featherFadeOutAlpha = 0;
                }
            }
            if (StateFlag == Jabber.StateFlag.FADE_OUT_COMPLETE)
            {
                LowerFlag(Flags.FADE_IN);
                fadeInTimer = JabMath.MoveTowards(fadeInTimer, 0.0f, gttf(dt) * 3, 0.01f);
            }
        }
示例#26
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            updatecalled = true;

            if (CheckFlag(Flags.FADE_OUT))
            {
                timer = JabMath.MoveTowards(timer, 0, gttf(dt) * 4.5f, 0.001f);

                if (timer == 0)
                {
                    RaiseFlag(Flags.DELETE);
                }
            }
            else
            {
                timer = JabMath.MoveTowards(timer, 1.0f, gttf(dt) * 1.5f);
            }
            Colour = new Color(timer, timer, timer, timer);
        }
示例#27
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);
            if (CheckFlag(Flags.FADE_OUT) && fadeOutTimer != 0)
            {
                fadeOutTimer -= gttf(dt) * 6.0f;
                if (fadeOutTimer < 0)
                {
                    fadeOutTimer = 0.0f;
                    OnFadeOutComplete();
                }
            }
            for (int i = 0; i < texts.Count; i++)
            {
                if (texts[i].isSelected)
                {
                    texts[i].text.UniformScale = JabMath.MoveTowards(texts[i].text.UniformScale, ScaleFactor / 1.75f, gttf(dt) * textMoveSpeed, 0.01f);
                }
                else
                {
                    texts[i].text.UniformScale = JabMath.MoveTowards(texts[i].text.UniformScale, ScaleFactor / 2.0f, gttf(dt) * textMoveSpeed, 0.01f);
                }
            }
            chickenCurrentX = JabMath.MoveTowards(chickenCurrentX, chickenTargetX, gttf(dt) * chickenMoveSpeed);

            float targetWidth = BaseGame.Get.BackBufferWidth * 0.15f;

            currentWidth = JabMath.MoveTowards(currentWidth, targetWidth, gttf(dt) * widthMoveSpeed, 10 * ScaleFactor);


            for (int i = texts.Count - 1; i >= 0; i--)
            {
                texts[i].text.PosX = JabMath.MoveTowards(texts[i].text.PosX, textTargetX, gttf(dt) * textMoveSpeed);
                int mirror = texts.Count - i;
                texts[i].text.PosY  = BaseGame.Get.HalfBackBufferHeight * mirror / texts.Count - 150.0f * ScaleFactor;
                texts[i].text.PosY *= 1.2f;
            }
        }
示例#28
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (timer1 < 1)
            {
                timer1 += gttf(dt) / 3.0f;
            }
            else if (timer2 < 1)
            {
                longstrip.PosX = JabMath.LinearMoveTowards(longstrip.PosX, -Jabber.BaseGame.Get.BackBufferWidth / 2.0f, gttf(dt) * 150 * ScaleFactor);

                if (longstrip.PosX == -Jabber.BaseGame.Get.BackBufferWidth / 2.0f)
                {
                    timer2 += gttf(dt) / 3.0f;
                }
            }
            else
            {
                // timer3 += gttf(dt);
                // if (timer3 > 4.0f)
                {
                    // Vector4 col = finalimage.Colour.ToVector4();
                    // float a = JabMath.LinearMoveTowards(col.W, 0.0f, gttf(dt));
                    // finalimage.Colour = new Color(a, a, a, a);

                    //if (a == 0)
                    {
                        RaiseFlag(Flags.DELETE);
                        WorldSelectScreen s = new WorldSelectScreen();
                        s.Initialize(BaseGame.Get.Content);
                        s.SetCurrentCountry("bavaria");
                        ScreenManager.Get.AddScreen(s);
                    }
                }
            }
        }
示例#29
0
        public override void Update(GameTime dt)
        {
            base.Update(dt);

            if (timer1 < 1)
            {
                timer1 += gttf(dt) / 3.0f;
            }
            else if (timer2 < 1)
            {
                longstrip.PosX = JabMath.LinearMoveTowards(longstrip.PosX, -Jabber.BaseGame.Get.BackBufferWidth / 2.0f, gttf(dt) * 150 * ScaleFactor);

                if (longstrip.PosX == -Jabber.BaseGame.Get.BackBufferWidth / 2.0f)
                {
                    timer2 += gttf(dt) / 4.0f;
                }
            }
            else
            {
                finalimage.PosX = JabMath.LinearMoveTowards(finalimage.PosX, -Jabber.BaseGame.Get.BackBufferWidth / 2.0f, gttf(dt) * 150 * ScaleFactor);

                if (finalimage.PosX == -Jabber.BaseGame.Get.BackBufferWidth / 2.0f)
                {
                    timer3 += gttf(dt) / 4.0f;
                }
                if (timer3 > 1.0f)
                {
                    RaiseFlag(Flags.DELETE);


                    WorldSelectScreen s = new WorldSelectScreen();
                    s.Initialize(BaseGame.Get.Content);
                    s.SetCurrentCountry("polar");
                    ScreenManager.Get.AddScreen(s);
                }
            }
        }
示例#30
0
        public override void Update(GameTime gameTime)
        {
            base.Update(gameTime);
            if (CheckFlag(Flags.FADE_OUT))
            {
                float a = Colour.A / 255.0f;
                float d = JabMath.MoveTowards(a, 0.0f, gttf(gameTime) * 2.0f, 0.001f);
                Colour = Color.White * d;
                if (d == 0)
                {
                    RaiseFlag(Flags.DELETE);
                }
                return;
            }
            if (PosX > world.GetRightMaxPos() + 1000 || PosX < world.startPos.X - 1000)
            {
                Rot = 0.5f * JabMath.PI;
            }
            if (Math.Abs(Rot) > 0.45f * JabMath.PI)
            {
                deathTimer += gttf(gameTime) * 5.0f;
                while (deathTimer > 1.0f && numDonutsMade < 5)
                {
                    deathTimer -= 1.0f;
                    Donut d = new Donut(world);
                    AudioQueue.PlayOnce("Sounds/pop");
                    d.Initialize(BaseGame.Get.Content);
                    d.Position = Position + new Vector2(RandomFloatInRange(-0.5f, 0.5f) * Width, RandomFloatInRange(-0.5f, 0.5f) * Height);
                    d.Chosen   = true;
                    world.AddNode(d);
                    deathTimer -= 1.0f;
                    ++numDonutsMade;

                    float   oldWidth  = Body.Width;
                    float   oldHeight = Body.Height;
                    Vector2 oldPos    = Body.Position;
                    float   oldRot    = Body.Rot;


                    oldWidth  *= 0.9f;
                    oldHeight *= 0.9f;
                    Vector2 linearVelocity  = Body.LinearVelocity;
                    float   angularVelocity = Body.AngularVelocity;

                    Body.RaiseFlag(Flags.DELETE);
                    Body.CollisionGroup = Donut.DonutCollisionGroup;

                    Body                 = world.World.CreateBox(new Vector2(oldWidth, oldHeight), oldPos, JabActor.BodyType.DYNAMIC);
                    Body.Rot             = oldRot;
                    Body.LinearVelocity  = linearVelocity;
                    Body.AngularVelocity = angularVelocity;
                    //Sprite.Width = oldWidth;
                    //Sprite.Height = oldHeight;
                }
                if (numDonutsMade > 4)
                {
                    RaiseFlag(Flags.DELETE);
                }
                //Colour = Color.White * ((5.0f - numDonutsMade) / 5.0f);
            }

            Sprite.Width  = JabMath.MoveTowards(Sprite.Width, Body.Width, gttf(gameTime) * 1.0f);
            Sprite.Height = JabMath.MoveTowards(Sprite.Height, Body.Height, gttf(gameTime) * 1.0f);

            //   Body.LinearDamping = 0.15f;
            //   Body.AngularDamping = 0.3f;
        }