Exemplo n.º 1
0
        public virtual bool OnCollidedWith(Fixture f, UserControlledCharacter obj, Fixture f2, Contact info)
        {
            if (!used)
            {
                var waver = new Waver(Position - new Vector2(0, PhysicsConstants.PixelsToMeters(800)));
                levelManager.RegisterEntity(waver);

                used = true;
            }

            return true;
        }
Exemplo n.º 2
0
        public override void OnUpdate(GameTime time, EngineGame world)
        {
            timeSinceLastWaver += time.ElapsedGameTime.Milliseconds;

            if (cameraTweak)
            {
                Engine.Camera.MoveCameraTo(new Vector3(
                    -PhysicsConstants.MetersToPixels(Position.X) + Engine.GraphicsDevice.Viewport.Width / 2,
                    -PhysicsConstants.MetersToPixels(Position.Y) + Engine.GraphicsDevice.Viewport.Height,
                    0));
            }

            var slowDown = Engine.LevelManager.PhysicsManager.GlobalReferenceScale;
            if (lastGlobalReference != slowDown)
            {
                timeSinceLastWaver *= slowDown / lastGlobalReference;
                lastGlobalReference = slowDown;
            }

            if (startWavers && timeSinceLastWaver >= (TIME_BETWEEN_WAVERS * slowDown))
            {
                timeSinceLastWaver = 0;
                var xOff = PhysicsConstants.PixelsToMeters(Width / 2);
                var yOff = PhysicsConstants.PixelsToMeters(-Engine.GraphicsDevice.Viewport.Height);
                var waver = new Waver(Position + new Vector2(xOff * (random.Next(-80, 80) / 100f), yOff));
                Engine.LevelManager.RegisterEntity(waver);
                waverCount++; //todo
            }

            if (InputManager.Instance.ActionPressed(InputManager.ButtonActions.AimDown) && !startGuard)
            {
                startGuard = true;
                OnSwitch();
            }

            if (!done && Vector2.Distance(Position, EndPosition) < .1)
                OnSwitch();
        }