Hoi iedereen,
Ik heb in C# een picturebox aangemaakt die een route gaat rijden.
Mijn vraag is hoe zorg ik dat 15 pictureboxes tegelijkertijd een route gaan rijden zonder dat ik er 15 moet aanmaken.
Hier volgt mijn code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace belangrijk
{
public partial class uitleg : Form
{
Point[][] m_paaRoutes = new Point[3][];
int m_iRouteIndex = 0;
int m_iRoute = 0;
int m_iStepsize = 15;
int n = 15;
Random r = new Random();
public uitleg()
{
InitializeComponent();
m_paaRoutes[0] = new Point[4] { button1.Location, button2.Location, button3.Location, button4.Location };
m_paaRoutes[1] = new Point[4] { bt8.Location, bt7.Location, button6.Location, button5.Location };
m_paaRoutes[2] = new Point[4] { button1.Location, button2.Location, button3.Location, button4.Location };
m_iRoute = r.Next(0, 3);
pbme.Location = m_paaRoutes[m_iRoute][m_iRouteIndex];
m_iRouteIndex++;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (m_iStepsize > Math.Abs(pbme.Left - m_paaRoutes[m_iRoute][m_iRouteIndex].X))
{
pbme.Left = m_paaRoutes[m_iRoute][m_iRouteIndex].X;
}
else
{
if (pbme.Left < m_paaRoutes[m_iRoute][m_iRouteIndex].X)
{
pbme.Left += m_iStepsize;
}
else if (pbme.Left > m_paaRoutes[m_iRoute][m_iRouteIndex].X)
{
pbme.Left -= m_iStepsize;
}
if (pbme.Location == m_paaRoutes[m_iRoute][m_iRouteIndex])
{
m_iRouteIndex++;
if (m_iRouteIndex == m_paaRoutes[m_iRoute].Length)
{
m_iRouteIndex = 0;
m_iRoute = r.Next(0, 3);
pbme.Location = m_paaRoutes[m_iRoute][m_iRouteIndex];
}
}
}
if (m_iStepsize > Math.Abs(pbme.Top - m_paaRoutes[m_iRoute][m_iRouteIndex].Y))
{
pbme.Top = m_paaRoutes[m_iRoute][m_iRouteIndex].Y;
}
else
{
if (pbme.Top < m_paaRoutes[m_iRoute][m_iRouteIndex].Y)
{
pbme.Top += m_iStepsize;
}
else if (pbme.Top > m_paaRoutes[m_iRoute][m_iRouteIndex].Y)
{
pbme.Top -= m_iStepsize;
}
}
if (pbme.Location == m_paaRoutes[m_iRoute][m_iRouteIndex])
{
m_iRouteIndex++;
if (m_iRouteIndex == m_paaRoutes[m_iRoute].Length)
{
m_iRouteIndex = 0;
m_iRoute = r.Next(0, 3);
pbme.Location = m_paaRoutes[m_iRoute][m_iRouteIndex];
}
}
}
}
}
Ik heb in C# een picturebox aangemaakt die een route gaat rijden.
Mijn vraag is hoe zorg ik dat 15 pictureboxes tegelijkertijd een route gaan rijden zonder dat ik er 15 moet aanmaken.
Hier volgt mijn code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace belangrijk
{
public partial class uitleg : Form
{
Point[][] m_paaRoutes = new Point[3][];
int m_iRouteIndex = 0;
int m_iRoute = 0;
int m_iStepsize = 15;
int n = 15;
Random r = new Random();
public uitleg()
{
InitializeComponent();
m_paaRoutes[0] = new Point[4] { button1.Location, button2.Location, button3.Location, button4.Location };
m_paaRoutes[1] = new Point[4] { bt8.Location, bt7.Location, button6.Location, button5.Location };
m_paaRoutes[2] = new Point[4] { button1.Location, button2.Location, button3.Location, button4.Location };
m_iRoute = r.Next(0, 3);
pbme.Location = m_paaRoutes[m_iRoute][m_iRouteIndex];
m_iRouteIndex++;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (m_iStepsize > Math.Abs(pbme.Left - m_paaRoutes[m_iRoute][m_iRouteIndex].X))
{
pbme.Left = m_paaRoutes[m_iRoute][m_iRouteIndex].X;
}
else
{
if (pbme.Left < m_paaRoutes[m_iRoute][m_iRouteIndex].X)
{
pbme.Left += m_iStepsize;
}
else if (pbme.Left > m_paaRoutes[m_iRoute][m_iRouteIndex].X)
{
pbme.Left -= m_iStepsize;
}
if (pbme.Location == m_paaRoutes[m_iRoute][m_iRouteIndex])
{
m_iRouteIndex++;
if (m_iRouteIndex == m_paaRoutes[m_iRoute].Length)
{
m_iRouteIndex = 0;
m_iRoute = r.Next(0, 3);
pbme.Location = m_paaRoutes[m_iRoute][m_iRouteIndex];
}
}
}
if (m_iStepsize > Math.Abs(pbme.Top - m_paaRoutes[m_iRoute][m_iRouteIndex].Y))
{
pbme.Top = m_paaRoutes[m_iRoute][m_iRouteIndex].Y;
}
else
{
if (pbme.Top < m_paaRoutes[m_iRoute][m_iRouteIndex].Y)
{
pbme.Top += m_iStepsize;
}
else if (pbme.Top > m_paaRoutes[m_iRoute][m_iRouteIndex].Y)
{
pbme.Top -= m_iStepsize;
}
}
if (pbme.Location == m_paaRoutes[m_iRoute][m_iRouteIndex])
{
m_iRouteIndex++;
if (m_iRouteIndex == m_paaRoutes[m_iRoute].Length)
{
m_iRouteIndex = 0;
m_iRoute = r.Next(0, 3);
pbme.Location = m_paaRoutes[m_iRoute][m_iRouteIndex];
}
}
}
}
}