Это код игры в WindowsForm. При открытии игра сразу начинает работать но нужно что бы было по нажатию ENTER, как это сделать это я не понял
namespace OdevProje
{
public partial class Form1 : Form
{
int moveLeft = 0;
int enemyMove = 2;
Random rnd = new Random();
int bulletSpeed = 15;
bool shooting = false;
public Form1()
{
InitializeComponent();
dusman1.Top = -500;
dusman2.Top = -500;
dusman3.Top = -500;
dusman4.Top = -500;
dusman5.Top = -500;
dusman6.Top = -500;
dusman7.Top = -500;
mermer.Top = -100;
mermer.Left = -100;
}
private void tusaBasldgnda(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
if (tabanca.Location.X < 0)
{
moveLeft = 0;
}
else
{
moveLeft = -8;
}
}
else if (e.KeyCode == Keys.Right)
{
if (tabanca.Location.X > 935)
{
moveLeft = 0;
}
else
{
moveLeft = 8;
}
}
else if (e.KeyCode == Keys.Space)
{
if (shooting == false)
{
bulletSpeed = 15;
mermer.Left = tabanca.Left + 10;
mermer.Top = tabanca.Top;
shooting = true;
}
}
}
private void tusBrakldgnda(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Left)
{
moveLeft = 0;
}
else if (e.KeyCode == Keys.Right)
{
moveLeft = 0;
}
}
private void oyunTimer_Tick(object sender, EventArgs e)
{
tabanca.Left += moveLeft;
mermer.Top -= bulletSpeed;
dusman1.Top += enemyMove;
dusman2.Top += enemyMove;
dusman3.Top += enemyMove;
dusman4.Top += enemyMove;
dusman5.Top += enemyMove;
dusman6.Top += enemyMove;
dusman7.Top += enemyMove;
if (dusman1.Top == 560 || dusman2.Top == 560 || dusman3.Top == 560 || dusman4.Top == 560 || dusman5.Top == 560 || dusman6.Top == 560 || dusman7.Top == 560)
{
gameOver();
}
if (shooting && mermer.Top < 0)
{
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
enemyHit();
}
private void enemyHit()
{
if (mermer.Bounds.IntersectsWith(dusman1.Bounds))
{
dusman1.Top = -500;
int ranP = rnd.Next(1, 300);
dusman1.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
else if (mermer.Bounds.IntersectsWith(dusman2.Bounds))
{
dusman2.Top = -650;
int ranP = rnd.Next(1, 400);
dusman2.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
else if (mermer.Bounds.IntersectsWith(dusman3.Bounds))
{
dusman3.Top = -660;
int ranP = rnd.Next(1, 600);
dusman3.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
else if (mermer.Bounds.IntersectsWith(dusman4.Bounds))
{
dusman4.Top = -420;
int ranP = rnd.Next(1, 630);
dusman4.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
else if (mermer.Bounds.IntersectsWith(dusman5.Bounds))
{
dusman5.Top = -1300;
int ranP = rnd.Next(1, 620);
dusman5.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
else if (mermer.Bounds.IntersectsWith(dusman6.Bounds))
{
dusman6.Top = -700;
int ranP = rnd.Next(1, 600);
dusman6.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
else if (mermer.Bounds.IntersectsWith(dusman7.Bounds))
{
dusman7.Top = -680;
int ranP = rnd.Next(1, 600);
dusman7.Left = ranP;
shooting = false;
bulletSpeed = 0;
mermer.Top = -100;
mermer.Left = -100;
}
}
private void gameOver()
{
oyunTimer.Enabled = false;
MessageBox.Show(" Click OK to play Again");
dusman1.Top = -500;
dusman2.Top = -650;
dusman3.Top = -660;
dusman4.Top = -420;
dusman5.Top = -700;
dusman6.Top = -680;
dusman7.Top = 720;
mermer.Top = -100;
mermer.Left = -100;
oyunTimer.Enabled = true;
}
}
}
Исходя из имеющегося кода видно, что в двух обработчиках с невозможно говорящими названиями tusaBasldgnda()
и tusBrakldgnda()
присутствует обработка нажатий клавиш Keys.Left
, Keys.Right
и Keys.Space
.
Вам требуется добавить обработку клавиши Keys.Return
. Боюсь предположить на какие объекты привязаны обработчики tusaBasldgnda()
и tusBrakldgnda()
, поэтому предложу повесить хендлер на все окно. Не забываем установить свойство Form.KeyPreview
в true
. Также могу предположить, что таймер oyunTimer
при старте уже включен, поэтому его после инициализации компонентов окна надо его остановить.
public Form1()
{
InitializeComponent();
...
oyunTimer.Stop();
KeyPreview = true;
KeyPress += Form1OnKeyPressed;
}
private void Form1OnKeyPressed(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
{
oyunTimer.Start();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеВозникла необходимость реализовать обращение одной из нескольких баз данных, но как это сделать понятие не имею
Здравствуйте, помогите разобраться, пожалуйста, на страницах почти везде данное сообщениеWarning: Illegal string offset 'size' in "/home/
При разработке приходится много тестировать и на локальном и на удалённом сервере, а пути к файлам и папкам различные на этих серверахДопустим...