Занятие 10
Это надо знать
Траектория - это линия, вдоль которой движется тело.
Путь - это сумма длин всех участков траектории, последовательно проходимых телом при движении.
Создадим движение шарика в окне:
Схематически движение шарика можно изобразить следующим образом:
dt = t2 – t1 - промежуток времени, за который тело проходит один участок траектории.
Для расчета координаты точки (x, y) воспользуемся формулами:
x = x + Vx∙dt
y = y + Vy∙dt
Vx - скорость по х
Vy - скорость по y
dt - промежуток времени
Шарик должен отражаться от стенок окна и продолжать движение.
Если шарик отражается от вертикальной стены, то Vx = - Vx .
Если шарик отражается от вертикальной стены, то Vx = - Vx .
Если шарик отражается от горизонтальной стены, то Vy = - Vy .
Для организации действий, зависящих от какого-либо условия используется условный оператор if .
Общий вид оператора if:
if (условие)
{
операторы, которые должны выполниться, если условие истинно
};
else
{
операторы, которые должны выполниться, если условие ложно
}
еlse может отсутствовать, если в нем нет необходимости, т.е.
if (условие)
{
операторы, которые должны выполниться, если условие истинно
}
Создадим функцию движения тела (шарика) в окне.
Для организации действий, зависящих от какого-либо условия используется условный оператор if .
Общий вид оператора if:
if (условие)
{
операторы, которые должны выполниться, если условие истинно
};
else
{
операторы, которые должны выполниться, если условие ложно
}
еlse может отсутствовать, если в нем нет необходимости, т.е.
if (условие)
{
операторы, которые должны выполниться, если условие истинно
}
Создадим функцию движения тела (шарика) в окне.
Примечание:
Обозначение клавиш:
VK_BACK
|
BACKSPACE key
|
VK_TAB
|
TAB key
|
VK_RETURN
|
ENTER key
|
VK_SHIFT
|
SHIFT key
|
VK_CONTROL
|
CTRL key
|
VK_MENU
|
ALT key
|
VK_PAUSE
|
PAUSE key (пробел)
|
VK_ESCAPE
|
ESC key
|
VK_END
|
END key
|
VK_HOME
|
HOME key
|
VK_LEFT
|
LEFT ARROW key
|
VK_UP
|
UP ARROW key
|
VK_RIGHT
|
RIGHT ARROW key
|
VK_DOWN
|
DOWN ARROW key
|
VK_0
|
0 key
|
VK_1
|
1 key
|
VK_2
|
2 key
|
…
|
Аналогично для цифр
|
VK_A
|
A key
|
VK_B
|
B key
|
VK_C
|
C key
|
…
|
Аналогично для букв
|
Движение при помощи клавиш
Для управления объектом клавишами "ВПРАВО", "ВЛЕВО", "ВНИЗ", "ВВЕРХ", "ПРОБЕЛ" можно использовать команды:
if (GetAsyncKeyState (VK_RIGHT)) vx++; // движение вправо
if (GetAsyncKeyState (VK_LEFT)) vx--; // движение влево
if (GetAsyncKeyState (VK_DOWN)) vy++; // движение вниз
if (GetAsyncKeyState (VK_UP)) vy--; // движение вверх
if (GetAsyncKeyState (VK_SPACE)) vx = vy = 0; // останавливаем движение, нажимая на пробел
Пример
Движение лягушки в окне.Посмотреть текст программы
Результат работы программы