EXL's Developer Blog
Translate site on my language:

Меню сайта

Поиск

Календарь
«  Июль 2010  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031

Архив записей

Друзья сайта
  • MotoFan.Ru
  • Dingoo A320.Русский Ресурс
  • Motorola Gaming site
  • Android Games Development
  • ROKR E2 Developments

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Приветствую Вас, Гость · RSS 28.06.2017, 02:39

    Главная » 2010 » Июль » 12 » Раскладка клавиатуры...
    14:05
    Раскладка клавиатуры...

    Портируя игры частенько натыкаешься на такие подводные камни... раскладка у GP2X довольно специфичная.. В основном разработчики используют при дебагинге на хосте стандартные значения. Но в релизе оставляют только под джойстик вышеупомянутой консоли. Приходится перенастраивать... Во-первых, ищем в исходниках такие строчки:

      case SDL_JOYBUTTONDOWN: // Нажатая клавиша

    switch (event.jbutton.button)

    и

      case SDL_JOYBUTTONUP: // Отпущенная клавиша  

    switch (event.jbutton.button)

    и заменяем на:

      case SDL_KEYDOWN:

    switch (event.key.keysym.sym)

     case SDL_KEYUP:

    switch (event.key.keysym.sym)

    Далее уже меняем сами значения клавиш. Они могут быть даны в GP2X_BUTTON или просто в case с SDL кодом клавиши.

    Я сделал небольшую табличку, в которой можно понять что на что менять) (Подходит для ZN5):
    GP2XКод SDL -> GP2XSDLK (ZN5)
    GP2X_BUTTON_UPcase 0SDLK_UP
    GP2X_BUTTON_DOWNcase 4SDLK_DOWN
    GP2X_BUTTON_LEFTcase 2SDLK_LEFT
    GP2X_BUTTON_RIGHTcase 6SDLK_RIGHT
    GP2X_BUTTON_UPLEFTcase 1SDLK_3
    GP2X_BUTTON_UPRIGHTcase 7SDLK_9
    GP2X_BUTTON_DOWNLEFTcase 3SDLK_1
    GP2X_BUTTON_DOWNRIGHTcase 5SDLK_7
    GP2X_BUTTON_CLICKcase 18SDLK_0
    GP2X_BUTTON_Acase 12SDLK_PLUS
    GP2X_BUTTON_Bcase 13SDLK_MINUS
    GP2X_BUTTON_Ycase 14SDLK_F9
    GP2X_BUTTON_Xcase 15SDLK_F11
    GP2X_BUTTON_Lcase 10SDLK_HASH
    GP2X_BUTTON_Rcase 11SDLK_ASTERISK
    GP2X_BUTTON_STARTcase 8SDLK_PAUSE
    GP2X_BUTTON_SELECTcase 9SDLK_RETURN
    GP2X_BUTTON_VOLUPcase 16SDLK_6
    GP2X_BUTTON_VOLDOWNcase 17SDLK_4

    Пример хидера:

    #define GP2X_BUTTON_UP                                  (0)  

    #define GP2X_BUTTON_DOWN                            (4)  

    #define GP2X_BUTTON_LEFT                               (2)  

    #define GP2X_BUTTON_RIGHT                            (6)  

    #define GP2X_BUTTON_UPLEFT                          (1)  

    #define GP2X_BUTTON_UPRIGHT                       (7)  

    #define GP2X_BUTTON_DOWNLEFT                    (3)  

    #define GP2X_BUTTON_DOWNRIGHT                 (5)  

    #define GP2X_BUTTON_CLICK                          (18)  

    #define GP2X_BUTTON_A                                   (12)

    #define GP2X_BUTTON_B                                   (13)

    #define GP2X_BUTTON_Y                                   (14)  

    #define GP2X_BUTTON_X                                   (15)

    #define GP2X_BUTTON_L                                   (10)  

    #define GP2X_BUTTON_R                                   (11)  

    #define GP2X_BUTTON_START                            (8)  

    #define GP2X_BUTTON_SELECT                          (9)

    #define GP2X_BUTTON_VOLUP                         (16)

    #define GP2X_BUTTON_VOLDOWN                   (17)

    Пример исправленного хидера:

    #define GP2X_BUTTON_UP                                       SDLK_UP

    #define GP2X_BUTTON_DOWN                           SDLK_DOWN  

    #define GP2X_BUTTON_LEFT                                 SDLK_LEFT  

    #define GP2X_BUTTON_RIGHT                           SDLK_RIGHT  

    #define GP2X_BUTTON_UPLEFT                                  SDLK_3  

    #define GP2X_BUTTON_UPRIGHT                               SDLK_9  

    #define GP2X_BUTTON_DOWNLEFT                            SDLK_1  

    #define GP2X_BUTTON_DOWNRIGHT                         SDLK_7  

    #define GP2X_BUTTON_CLICK                                    SDLK_0  

    #define GP2X_BUTTON_A                                      SDLK_PLUS  

    #define GP2X_BUTTON_B                                    SDLK_MINUS  

    #define GP2X_BUTTON_Y                                            SDLK_F9  

    #define GP2X_BUTTON_X                                          SDLK_F11  

    #define GP2X_BUTTON_L                                       SDLK_HASH  

    #define GP2X_BUTTON_R                               SDLK_ASTERISK  

    #define GP2X_BUTTON_START                           SDLK_PAUSE  

    #define GP2X_BUTTON_SELECT                       SDLK_RETURN  

    #define GP2X_BUTTON_VOLUP                                     SDLK_6  

    #define GP2X_BUTTON_VOLDOWN                               SDLK_4   


    Коды клавиш SDL, ZN5:

    0 - 48  
    1 - 49 
    2 - 50  
    3 - 51  
    4 - 52  
    5 - 53  
    6 - 54  
    7 - 55  
    8 - 56  
    9 - 57  
    * - 42  
    # - 35  
    left - 273 (up)  
    right - 274 (down)  
    down - 276 (left)  
    up - 275 (right)  
    центр - 13 (return)  
    CLR - 8 (backspace)  
    call - 9 (tab)  
    red - 27 (escape)
    left soft - 290  
    right soft - 292
    camera - 19
    volume - - 45
    volume + - 43

    Раскладка Dingoo (Dingux OS):

    Up -> SDLK_UP 237
    Down -> SDLK_DOWN 274
    Left -> SDLK_LEFT 276
    Right -> SDLK_RIGHT 275
    A -> SDLK_LCTRL 306
    B -> SDLK_LALT 308
    X -> SDLK_SPACE 32
    Y -> SDLK_LSHIFT 304
    L -> SDLK_TAB 9
    R -> SDLK_BACKSPACE 8
    Select -> SDLK_ESCAPE 27
    Start -> SDLK_RETURN 13
    End -> SDLK_UNKNOWN
    Просмотров: 263 | Добавил: EXL | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright EXL © 2017
    Сделать бесплатный сайт с uCoz