[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Клавиатура на visual basic (Клавиатура на visual basic)
Клавиатура на visual basic
ilimДата: Пятница, 04.02.2011, 05:16 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Очень часто при создании игр начинающий гейм - мейкер сталкивается с проблеммой передвижения объекта. Т.е. при нажатии в верх и в бок объект или останавливается, или идет только в одну сторону. А вот как сделать чтоб при нажатии в верх и в бок, объект двигался в верх(или вниз) и в бок(влево или вправо) одновременно? Можно использовать DirectInput, но DirectInput освоить не так уж и легко, а вот есть более легкий способ.

На форму кинь Picture1(AutoSize = True, BorderStyle = 0), Timer(Interval = 1), вот код:

Dim L As Boolean ' Объявляем переменную L как Boolean, т.е. значение переменной может принимать только 2 значения, True и False. Если переменная L принимает значение True то объект двигается, если False - то стоит
Dim R As Boolean
Dim U As Boolean
Dim D As Boolean

Private Sub Picture1_KeyDown(KeyCode As Integer, Shift As Integer)' При НАЖАТИИ на кнопку:

If KeyCode = vbKeyLeft Then ' Если нажата клавиша Left:
L = True ' L = True, т.е. объект двигается в лево
R = False' Если объект двигался вправо, то останавливаем его
End If

If KeyCode = vbKeyRight Then ' Если нажата клавиша Right:
L = False' Если объект двигался влево, то останавливаем его
R = True ' Объект двигаем вправо
End If

' Здесь аналогично
If KeyCode = vbKeyUp Then
U = True
D = False
End If

If KeyCode = vbKeyDown Then
D = True
U = False
End If
End Sub

Private Sub Picture1_KeyUp(KeyCode As Integer, Shift As Integer)' При ОТЖАТИИ кнопки:

If KeyCode = vbKeyLeft Then L = False' Если отжата кнопка влево, то останавливаем объект
If KeyCode = vbKeyRight Then R = False
If KeyCode = vbKeyUp Then U = False
If KeyCode = vbKeyDown Then D = False
End Sub

Private Sub Timer1_Timer()
' Здесь я думаю все понятно
If L = True Then Picture1.Left = Picture1.Left - 20
If R = True Then Picture1.Left = Picture1.Left + 20
If U = True Then Picture1.Top = Picture1.Top - 20
If D = True Then Picture1.Top = Picture1.Top + 20
End Sub


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Клавиатура на visual basic (Клавиатура на visual basic)
Страница 1 из 11
Поиск: