Эта программа может понадобиться в качестве примера тем, кто собирается писать аркады, и вообще программы с клавиатурой.


Шаг №1 - Постановка задачи

Как всегда первым делом определяем, что же будет делать наша программа. Программа должна по нажатию одной из стрелок передвигать объект по экрану в напрвлении соответствующем стрелке.То есть если вы нажали на стрелку вверх, то объект должен передвинуться вверх и т.п.


Особенности

Во вторых вы должны уяснить некоторые особенности. Система координат в VB имеет начало в левом верхнем углу, то есть там координата (0;0). Соответственно, если вы хотите чтобы объект сместился вниз на n твипов (величина обозначающая координаты в VB), то вам нужно прибавить к его вертикали ( Top ) значение n, то же и с горизонталью. Вторая особенность, если на форме находятся управляющие элементы (кнопки и т.д.) то программа не будет работать, из-за того, что фокус находиться не на форме, а на одном из этих элементов. Конечно можно сделать и так чтобы все работало и с управляющими элементами, но эта статья для новичков, поэтому я не буду тут описывать, как это сделать.


Шаг №2 - Визуальное проектирование

Как всегда следующим шагом является визуальное проектирование. То есть вы должны разместить на форме некоторые объекты. На этот раз на форме должен быть только один объект - фигура (shape). Не меняйте его название,, пусть оно останется Shape1 (если хотите можете поменять, но тогда вы не сможете прото вставить мой код, вам придется делать поправки).Можете сделать эту фигуру чем угодно, хоть квадратом, хоть кругом, это не имеет значения , например в моей программе это - круг.Всё, с визуальным проектированием покончено.


Шаг №3 - Программирвание в коде

Теперь приступим к программированию в коде:

Для начала объявляем переменные пишем

Option Explicit ' Объявляем переменные
Dim x as Integer ' Объявляем числовую переменную х
Dim y as Integer ' Объявляем числовую переменную y

Теперь войдите в код формы и выберите событие KeyDown, в нем пишите

x = Shape1.Left'Присваиваем переменной х значение положения объекта по горизонтали

y = Shape1.Top 'Присваиваем переменной х значение положения объекта по вертикали

If KeyCode = 37 Then x = x - 100 'Если код нажатой клавиши равен 37 (стрелка влево) то от значения переменной x отнять 100

If KeyCode = 39 Then x = x + 100 'Если код нажатой клавиши равен 39 (стрелка вправо) то к значению переменной x прибавить 100

If KeyCode = 38 Then y = y - 100 'Если код нажатой клавиши равен 38 (стрелка вверх) то от значения переменной y отнять 100

If KeyCode = 40 Then y = y + 100 'Если код нажатой клавиши равен 40 (стрелка вниз) то к значению переменной y прибавить 100

Shape1.Left = x 'Присваиваем значению горизонтального положения объекта значение переменной x

Shape1.Top = y 'Присваиваем значению вертикального положения объекта значение переменной y

В результате всего этого у вас должо получиться следующее :

Option Explicit

Dim x As Integer
Dim y As Integer

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
x = Shape1.Left
y = Shape1.Top
If KeyCode = 37 Then x = x - 100
If KeyCode = 39 Then x = x + 100
If KeyCode = 38 Then y = y - 100
If KeyCode = 40 Then y = y + 100
Shape1.Left = x
Shape1.Top = y
End Sub


Шаг №4 - Подведение итогов

Вот и всё, теперь порпробуйте запустить программу, и понажимать на стрелки, получилось ? Если да, то поздравляю, если не то можете взять исходники и попробовать разобраться в них.