Оценить:
 Рейтинг: 0

Справочник Жаркова по проектированию и программированию искусственного интеллекта. Том 7: Программирование на Visual C# искусственного интеллекта. Издание 2

Год написания книги
2023
Теги
<< 1 ... 10 11 12 13 14 15 16 17 18 ... 34 >>
На страницу:
14 из 34
Настройки чтения
Размер шрифта
Высота строк
Поля

else

{

cx–;

}

if ((cx + cheeseImage.Width) >= this.ClientSize.Width)

{

goingRight = false;

}

if (cx <= 0)

{

goingRight = true;

}

if (goingDown)

{

cy++;

}

else

{

cy–;

}

if ((cy + cheeseImage.Height) >= this.ClientSize.Height)

{

goingDown = false;

}

if (cy <= 0)

{

goingDown = true;

}

}

В этом коде видно, что координаты объекта “x, y” изменяются на величину +1, когда объект перемещается в положительном направлении осей “x, y” (вправо и вниз), и изменяются на величину -1, когда объект перемещается в отрицательном направлении осей “x, y” (влево и вверх).

Код использует свойства ширины и высоты объекта (cheeseImage.Width и cheeseImage.Height) и экрана this.ClientSize.Width и this.ClientSize.Height). Вследствие этого программа будет нормально работать для любых размеров объекта и экрана.

В режиме выполнения (Build, Build Selection; Debug, Start Without Debugging) мы видим, что на форме Form1 изображение типа встроенного нами рисунка сыра cheese.jpg перемещается по диагоналям в различных направлениях, отскакивая от границ экрана (рис. 4.4).

Методика приостановки и возобновления анимации уже была приведена выше.

4.4. Методика управления скоростью перемещения объекта и добавления звукового сигнала

Предыдущая программа довольно медленно перемещает объект по экрану. Если ширина экрана, например, 100 пикселей, то с частотой 25 кадров в секунду объект пересекает этот экран по горизонтальной прямой приблизительно за 4 секунды. Для управления скоростью перемещения объекта вместо предыдущего кода, в котором изображение перемещается на 1 пиксель через каждый Interval времени срабатывания таймера, можно изменить количество пикселей xSpeed, на которое объект перемещается через каждый Interval времени срабатывания таймера, как показано в следующем коде:

if (goingRight)

{

cx += xSpeed;

}

else

{

cx -= xSpeed;

}

Изменяя значение xSpeed, можно увеличить или уменьшить горизонтальную составляющую (по оси “x”) скорости объекта.

Следующий аналогичный код для координаты “y” позволяет изменять вертикальную составляющую скорости объекта:

if (goingDown)

{

cy += ySpeed;

}

else
<< 1 ... 10 11 12 13 14 15 16 17 18 ... 34 >>
На страницу:
14 из 34

Другие электронные книги автора Валерий Алексеевич Жарков