Я новичок в C #. Я делаю какой-то школьный проект с помощью приложения Windows Form. Это простая игра, но я столкнулся с некоторыми проблемами, я хочу дать элементу управления графическим блоком траекторию, похожую на пулю, когда [Space] клавиша нажата, но еще не смогла это сделать. Я получил указание сделать это только с использованием потоков и без таймеров.
Также я хочу, чтобы это графическое окно «порождалось» и начинало двигаться из другого графического окна под названием «SpaceShip», но я не знаю, как я мог это сделать
Конечно, советы и предложения приветствуются, даже если это означает изменение всей части моего ужасного кода
Я пытался использовать picturebox.Left = picturebox.Left +5; но я думаю, что я делаю что-то не так
if (e.KeyCode == Keys.Space)
{
if(pbEnergy.Value <= 0)
{
pbEnergy.Value = 0;
System.Media.SoundPlayer SFX = new System.Media.SoundPlayer(@"C:\SFX\nolaser.wav");
SFX.Play();
}
else
{
System.Media.SoundPlayer SFX = new System.Media.SoundPlayer(@"C:\SFX\laser.wav");
SFX.Play();
pbEnergy.Value -= 10;
ThreadStart Delegate = new ThreadStart(phys);
Thread MovTh = new Thread(Delegate);
MovTh.Start();
}
}
public void phys()
{
for (int i = 0; i <= 60; i++)
{
Thread.Sleep(10);
Progress(i);
if (i == 60) //stop when value is reached
{
Thread.CurrentThread.Suspend();
}
}
}
delegate void Delegate(int n);
private void Progress(int num)
{
if (this.InvokeRequired)
{
Delegate d = new Delegate(Progress);
object[] Parameters = new object[] { num };
this.Invoke(d, Parameters);
}
else
{
picprj.Visible = true;
picprj.Left = picprj.Left + 5;
}
Я ожидал, что коробка с картинками перемещается, а затем исчезает, но она завершает свою траекторию и остается видимой, я был бы признателен за некоторые советы по этому или даже лучший способ сделать это.