Small Basic #6 Событие “Когда клавиша нажата”

Try it out

1. При нажатии на любую клавишу будет выполнятся подпрограмма whichKey. Эта подпрограмма делает так, чтобы на текстовое поле выводилось сообщение, что была нажата клавиша:
' Добавляем обработчик событий нажатия клавиши
GraphicsWindow.KeyDown = keyboardListener

Sub keyboardListener
  TextWindow.WriteLine("key pressed")
EndSub

2. Немного изменим содержимое подпрограммы, чтобы на текстовое поле выводилось сообщение, какая конкретно была нажата клавиша:

Sub keyboardListener
  lastKey = GraphicsWindow.LastKey
  TextWindow.WriteLine("key pressed: ")
  TextWindow.Write(lastKey)
EndSub

3. Добавим проверку нажатия на конкретную клавишу:

Sub keyboardListener
  lastKey = GraphicsWindow.LastKey
  TextWindow.WriteLine("key pressed: ")
  TextWindow.Write(lastKey)
  ' Если последняя нажатая клавиша – Q, то закрыть программу
  If lastKey = "Q" Then
    Program.End()
  EndIf
EndSub

В конспект

GraphicsWindow.KeyDown = keyboardListener

Sub keyboardListener
  ' Тело подпрограммы
EndSub

Задания

Задание 6.1*. Напишите программу, чтобы при нажатии на любую кнопку фон графического окна изменялся на случайный.

Задание 6.2*. Напишите программу, чтобы при нажатии:

  • на кнопку Q программа закрывалась,
  • на кнопку E – по центру окна рисовался эллипс случайного цвета

Задание 6.3*. Напишите программу, изменяющую размер окна:

  • стрелка вправо увеличивает ширину окна на 10рх
  • стрелка влево уменьшает ширину окна на 10рх
  • стрелка вверх увеличивает высоту окна на 10рх
  • стрелка вниз уменьшает высоту окна на 10рх

Задание 6.4**. Напишите программ-генератор случайных эллипсов трёх цветов по желанию пользователя:

  • кнопка K генерирует в случайном месте эллипс чёрного цвета случайного диаметра
  • кнопка G генерирует в случайном месте эллипс зеленого цвета случайного диаметра
  • кнопка B генерирует в случайном месте эллипс синего цвета случайного диаметра

Задание 6.5**. Создайте Shape-прямоугольник car, который будет изменять свои координаты при нажатии на стрелки клавиатуры.

Задание 6.6***. Добавьте проверку на касание границ car.

Комментарии