#c# #winforms
#c# #winforms
Вопрос:
Я новичок в C #, я делаю какой-то школьный проект с использованием приложения Windows Form, это простая игра, но я столкнулся с некоторыми проблемами, я хочу придать picturebox управление траекторией, подобной пуле, при нажатии клавиши [Пробел], но пока не смог этого сделать. Мне было поручено делать это только с использованием потоков и БЕЗ таймеров.
Также я хочу, чтобы это поле с изображением «появлялось» и начинало перемещаться из другого поля с изображением под названием «Космический корабль», но я не знаю, как я мог это сделать
Конечно, советы и предложения очень приветствуются, даже если это означает изменение целых частей моего ужасного кода
Я пытался использовать picturebox.Слева = picturebox.Осталось 5; но я думаю, что я делаю что-то не так
if (e.KeyCode == Keys.Space)
{
if(pbEnergy.Value <= 0)
{
pbEnergy.Value = 0;
System.Media.SoundPlayer SFX = new System.Media.SoundPlayer(@"C:SFXnolaser.wav");
SFX.Play();
}
else
{
System.Media.SoundPlayer SFX = new System.Media.SoundPlayer(@"C:SFXlaser.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;
}
Я ожидал, что поле с картинками переместится, а затем исчезнет, но оно завершит свою траекторию и останется видимым, я был бы признателен за некоторые советы по этому поводу или даже за лучший способ сделать это.
Комментарии:
1.
I expected the picture box to travel and then disappear but it finishes its trajectory and stays visible
Я не вижу никакого кода, который вызываетpicprj.Visible = false;
WinForms не является отличной игровой платформой.2. Я правильно понимаю? Но я застрял на этом, мой профессор хотел этот проект только в приложениях Windows Form «picprj.Visible = false;» находится в событии Form_Load извините, если я вызвал путаницу
3. Ну, хорошо, это не видно при загрузке формы, но затем вы показываете это. Он никогда не вернется к значению visible = false, если вы не укажете это.