public override void Update()
{
if (Touch != null)
{
bool hold = (Touch.Position - Pos.ToVector2()).Length() < 1;
//Global.Output += Pos + ", " + Touch.Position;
Pos = Touch.Position.ToVector3();
if (Touch.State == TouchState.Moved)
{
if (Touch.Timer < 10)
{
Speed = SpeedRange = Vector3.Zero;
Emit = false;
}
else if (Touch.Holding)
{
//SpeedRange = new Vector3(new Vector2(25), 0);
Speed = SpeedRange = Vector3.Zero;
Emit = true;
}
else
{
Speed = SpeedRange = Vector3.Zero;
Emit = true;
}
}
else if (Touch.State == TouchState.Touched)
{
Speed = SpeedRange = Vector3.Zero;
//EmitParticle();
}
else
{
Speed = SpeedRange = Vector3.Zero;
Emit = false;
}
if (Touch.State == TouchState.Released || Touch.State == TouchState.None)
{
Speed = SpeedRange = Vector3.Zero;
Emit = false;
Touch = null;
}
}
for (int i = 0; i < holdParticles.Length; i++)
{
var p = holdParticles[i];
float betweenVal = MyMath.BetweenValue(0, holdParticles.Length - 1, i);
p.Pos = Pos;
if (Touch != null)
{
p.Alpha += (0.3f - p.Alpha) * 0.8f * Global.Speed * MyMath.Between(1, 0.3f, betweenVal);
}
else
{
p.Alpha += -p.Alpha * 0.1f * Global.Speed * MyMath.Between(1, 0.2f, betweenVal);
}
}
base.Update();
}
}