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; }
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(); }