Привет. Может потому что функция start_game() не вызывается после InitializeComponent() в первой функции?
namespace Labirint2D
{
public partial class FormLevel3 : Form
{
public FormLevel3()
{
InitializeComponent();
start_game();
}
int box_left = 9;// количество монеток при старте
private void start_game()
{
Point point = label_start.Location;
point.Offset(label_start.Width / 2, label_start.Height / 2);//появление курсора по центру label_start
Cursor.Position = PointToScreen(point);
Sound.play_start(); //вызов функции проигрывания музыки
label_door.Visible = true; // устанавливаем дверь
label_key.Visible = true; // устанавливаем ключ
label_flash3.Visible = true;
label_flash4.Visible = false;
box_left = 4; // количество монеток при старте
//делаем 4 монеток видимыми
label_box1.Visible = true;
label_box2.Visible = true;
label_box3.Visible = true;
label_box4.Visible = true;
}
private void finish_game()
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;//закрыть форму уровня
}
private void restart_game()
{
Sound.play_fail(); //проигрывать музыку проигрыша
DialogResult dr = MessageBox.Show("Вы коснулись стены лабиринта!\n\nПовторим?",
"Вы проиграли!", MessageBoxButtons.YesNo);
if (dr == System.Windows.Forms.DialogResult.Yes)
start_game();//если нажата кнопка "ОК"? Запуск новой игры
else
this.DialogResult = System.Windows.Forms.DialogResult.Abort;// выход из формы
}
private void FormLevel3_Shown(object sender, EventArgs e)
{
start_game();
}
private void timer1_Tick(object sender, EventArgs e)
//тайиер, который меняет видимость label_flash2 и label_flash3
{
label_flash3.Visible = !label_flash3.Visible;
label_flash4.Visible = !label_flash4.Visible;
}
private void label8_MouseEnter(object sender, EventArgs e)
{
restart_game();
}
private void label_teleport1_MouseEnter(object sender, EventArgs e)
{
Point point = label_key.Location;
point.Offset(label_key.Width / 2, label_key.Height / 2);//появление курсора по центру label_start
Cursor.Position = PointToScreen(point);
}
private void label_teleport2_MouseEnter(object sender, EventArgs e)
{
Point point = label_teleport3.Location;
point.Offset(label_teleport3.Width / 2, label_teleport3.Height / 2);//появление курсора по центру label_start
Cursor.Position = PointToScreen(point);
}
private void label_finish_MouseEnter(object sender, EventArgs e)
{
if (box_left == 0) //если собрали все монетки
finish_game(); //событие при наведении курсора мышки на label_finish
}
private void label_key_MouseEnter(object sender, EventArgs e)
{
label_door.Visible = false; // убираем дверь
label_key.Visible = false; // убираем ключ
Sound.play_key(); //воспроизведем звук для ключа
}
private void label_box1_MouseEnter(object sender, EventArgs e)
{
//сначада нужно узнать на какую именно монетку мы навели курсор
//это делается с помощью объекта sender
((Label)sender).Visible = false;//исчезновение монетки
Sound.play_key(); //проигрываем мелодию
box_left--; // уменьшаем кол-во оставшихся монет
}
Привет. Скинул код. Вроде как start_game() немного ниже, при загрузке формы...
private void FormLevel3_Shown(object sender, EventArgs e)
{
start_game();
}