Показать сообщение отдельно
Старый 07.10.2005, 00:24   #4
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Во многих играх есть нужда в подстройке управления под игрока.
...
Хм, тут есть повеселее методы. Ну вот, к примеру.
С именами просто. Чтоб не набивать код программы не нужной пургой, создаем .CFG файл со сканкодами клавиш. А в конце- имена кнопок мыша(!). См.аттач.

Загружаем всю эту радость в массив и выводим потом по мере необходимости в меню.
Dim KeyName$(255)
LoadKeyName=ReadFile("Scancodes.cfg")
While Not Eof(LoadKeyName)
 KeyName$(q)=ReadLine(LoadKeyName)
Wend
...
А так проверяем в настройках ввод пользователя и присваиваем комманде с номером "Option" соответствующий сканкод:
Repeat
;Проверка нажатия клавиши
 *For NCode=1 To 237
 * If KeyHit(NCode) Then
 * *KeyCommand(Option)=nCode
  Goto PrCheckKey
 * EndIf
 *Next
;Проверка нажатия кнопки мыша
 *For MBtn=1 To 3
 * If MouseHit(MBtn) Then
 * *KeyCommand(Option)=MBtn+237
  Goto PrCheckKey
 * EndIf
 *Next
Forever
.PrCheckKey
А потом в игре просто проверяем:
...
;комманда №6: действие
If (KeyHit(KeyCommand(6))=True Or MouseHit(KeyCommand(6)-237)) Then Action(Player)
;комманда №7: прыжок.
If (KeyHit(KeyCommand(7))=True Or MouseHit(KeyCommand(7)-237)) Then Jump(Player)
...
Универсально, коротко и держит мышь.

P.S. Очепятка была. Поправил.
(Offline)
 
Ответить с цитированием