public Butterfly(GameplayScreen screen) : base(screen) { Radius = 4; Vector3 initPos = new Vector3(); initPos.X = MathHelper.Lerp(screen.world.Limits.Min.X, screen.world.Limits.Max.X, screen.random.NextFloat()); initPos.Y = MathHelper.Lerp(screen.world.Limits.Min.Y, screen.world.Limits.Max.Y, screen.random.NextFloat()); initPos.Z = 0; Position = initPos; MaxForce = 5 * 1.65f; MaxSpeed = MathHelper.Lerp(8, 12, screen.random.NextFloat()) * 1.65f; MaxSpeed = 75; MaxForce = 3 * MaxSpeed; Speed = MathHelper.Lerp(MaxSpeed / 2, MaxSpeed, screen.random.NextFloat()); float angle = (float)(screen.random.NextFloat() * MathHelper.TwoPi); Velocity = new Vector3((float)Math.Cos(angle), (float)Math.Sin(angle), 0) * Speed; alpha = new Controller(screen.random.NextFloat(), MathHelper.Lerp(0.4f, 0.8f, screen.random.NextFloat()), 0, 1, Controller.Mode.OSCILLATE); radiusOffset = new Controller( screen.random.NextFloat() * 4 - 2, 50, -2, 2, Controller.Mode.OSCILLATE); Controller animSpeed = new Controller(2, 1, 3, 7, Controller.Mode.OSCILLATE); anim = new AnimController(animSpeed); }
/// <summary> /// Constructor /// </summary> /// <param name="screen">gameplay screen</param> public Player(GameplayScreen screen) : base(screen) { Radius = 8; Position = new Vector3(0,0,0); MaxSpeed = 75; MaxForce = 3 * MaxSpeed; Speed = 0; Controller animSpeed = new Controller(2, 1, 2, 3, Controller.Mode.OSCILLATE); anim = new AnimController(animSpeed); ghostEffect = new GhostEffect(screen, this); sonar = new Sonar(screen); }