Управление объектом
Эта программа может понадобиться в качестве примера тем, кто собирается писать аркады, и вообще программы с клавиатурой.
Как всегда первым делом определяем, что же будет делать наша программа. Программа должна по нажатию одной из стрелок передвигать объект по экрану в напрвлении соответствующем стрелке.То есть если вы нажали на стрелку вверх, то объект должен передвинуться вверх и т.п.
Во вторых вы должны уяснить некоторые особенности. Система координат в VB имеет начало в левом верхнем углу, то есть там координата (0;0). Соответственно, если вы хотите чтобы объект сместился вниз на n твипов (величина обозначающая координаты в VB), то вам нужно прибавить к его вертикали ( Top ) значение n, то же и с горизонталью. Вторая особенность, если на форме находятся управляющие элементы (кнопки и т.д.) то программа не будет работать, из-за того, что фокус находиться не на форме, а на одном из этих элементов. Конечно можно сделать и так чтобы все работало и с управляющими элементами, но эта статья для новичков, поэтому я не буду тут описывать, как это сделать.
Как всегда следующим шагом является визуальное проектирование. То есть вы должны разместить на форме некоторые объекты. На этот раз на форме должен быть только один объект - фигура (shape). Не меняйте его название,, пусть оно останется Shape1 (если хотите можете поменять, но тогда вы не сможете прото вставить мой код, вам придется делать поправки).Можете сделать эту фигуру чем угодно, хоть квадратом, хоть кругом, это не имеет значения , например в моей программе это - круг.Всё, с визуальным проектированием покончено.
Теперь приступим к программированию в коде:
Для начала объявляем переменные пишем
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