Hallo
Ik ben bezig met een atletiekpiste te maken. De totale tijd wordt "totaleT" genoemd . De tijd is tot 1 tiende en de interval is op 1 honderste ingesteld, bij 110 keren de loop doorlopen moet de timer stoppen. Wanneer blijk ik via DateTime het verschil te bekijken , dat er een verschil is van een paar seconden. Weten jullie hoe dit zo komen?
Wanneer de timer niet zo kan werken, zal het wel via de System.DateTime lukken, denk ik.
Code:
private void button2_Click(object sender, EventArgs e)
{
panel1.BackgroundImage = Bitmap.FromFile("AtletiekPiste2.png");
totaleT = int.Parse(txtTotaleH.Text);//110
PixelPerT = 400 / totaleT;
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime d1 = DateTime.Now;
Graphics g = panel1.CreateGraphics();
aantalT++;
aantalPixD = PixelPerT * aantalT;
string woord = aantalPixD.ToString();
string nieuwWoord = "";
for (int i = 0; i < woord.Length; i++)
{
string letter = woord.Substring(i, 1);
if (letter != ",")
{
nieuwWoord += letter;
}
else
{
break;
}
}
aantalPixI = int.Parse(nieuwWoord);
if (aantalT != totaleT)
{
g.DrawImage(Bitmap.FromFile("bal.png"), 110 + aantalPixI, 450);
}
else
{
timer1.Enabled = false;
}
DateTime d2 = DateTime.Now;
int M1 = 0;
int M2 = 0;
string nieuwGetal = "";
try
{
for (int i = 0; i < d1.Millisecond.ToString().Length - 1; i++)
{
string letter = d1.Millisecond.ToString().Substring(i, 1);
nieuwGetal += letter;
}
M1 = int.Parse(nieuwGetal);
nieuwGetal = "";
for (int i = 0; i < d2.Millisecond.ToString().Length - 1; i++)
{
string letter = d2.Millisecond.ToString().Substring(i, 1);
nieuwGetal += letter;
}
M2 = int.Parse(nieuwGetal);
verschil = M2 - M1;
aantalT += verschil;
}
catch
{
}
}
groetjes tiemen