[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » смена управленния
смена управленния
Pro_100_DenДата: Понедельник, 29.06.2009, 09:06 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
подскажите как сделать панель управления в главном меню например меню, опции, управление чтоб можно было назначать любые клавиши для каких либо деиствий допустим ити вперед, ити назд, ити в лево, ити в право. Ранее я уже задавал этот вопрос номне на него так и не ответили. Пожалуста подскажите буду очень благодарен.
 
deejexДата: Понедельник, 29.06.2009, 12:43 | Сообщение # 2
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
Делаем внешний файл, допустим "keyboard.cfg", открываем его блокнотом и 237 раз пишем с новой строки 0
Потом для каждого сканкода (не забывай пропускать пропущеные в сканкод-листе сканкоды) пишем действие, например Jump или Use.
Далее пишем (в исходнике)

Type KeybActions
Field Act$,Scanc%
End Type

sc_file = ReadFile("keyboard.cfg")

Function ReadyKeybActions(scfile$) ;Подготавливает действия
For rkac = 1 To 237
kba.KeybActions = New KeybActions
kba\Act$ = ReadLine(sc_file)
kba\Scanc% = rkac
Next
End Function

Function ActScan(acti$) ;Возвращает сканкод действия. Если дейстивие отсутствует, то будет возвращено 237
ascv = 0
For kba.KeybActions = New KeybActions
acsv = acsv + 1
If kba\Act$ = acti$ Then Exit
Next
Return acsv
End Function

Ах да, сэмпл-

Type KeybActions
Field Act$
End Type

sc_file = ReadFile("keyboard.cfg")

While e=0
If KeyDown(ActScan("Exit")) Then End
Wend

Function ReadyKeybActions(scfile$) ;Подготавливает действия
For rkac = 1 To 237
kba.KeybActions = New KeybActions
kba\Act$ = ReadLine(sc_file)
Next
End Function

Function ActScan(acti$) ;Возвращает сканкод действия. Если дейстивие отсутствует, то будет возвращено 237
ascv = 0
For kba.KeybActions = New KeybActions
acsv = acsv + 1
If kba\Act$ = acti$ Then Exit
Next
Return acsv
End Function

А вот функция изменения действий-

Function ChangeAction(actio$,new_scan) ;Смена действия.
For kba.KeybActions = Each KeybActions
If kba\Act$ = actio$ Then actioncv = kba\Act$ kba\Act$ = 0
Next
For kba.KeybActions = Each KeybActions
If kba\Scanc% = new_scan Then kba\Act$ = actioncv
Next
End Function

Добавлено (29.06.2009, 12:43)
---------------------------------------------
PS: Ты как всегда путаешь раздел)






Сообщение отредактировал deejex - Понедельник, 29.06.2009, 10:00
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » смена управленния
  • Страница 1 из 1
  • 1
Поиск: