forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Программирование (http://forum.boolean.name/forumdisplay.php?f=54)
-   -   Кнопки (http://forum.boolean.name/showthread.php?t=1273)

SubZer0 10.08.2006 05:25

Кнопки
 
Приветствую всех!

на сегодня проблема организационного типа:

насколько я знаю юзая GameCanvas можно получить от клавиатуры:

DOWN_PRESSED
LEFT_PRESSED
RIGHT_PRESSED
UP_PRESSED
FIRE_PRESSED

GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED и GAME_D_PRESSED во внимание не беру, поскольку не каждая мобила поддерживает функционирование таких кнопок...

Проблема такая, что одной кнопки слишком мало... а как бы сделать больше?

есть варианты:

1. Ловить двойное, тройное, четверное нажатие... и за каждым нажатием зацеплять различные функции...
2. Ловить длительное нажатие кнопки и сообщать юзеру что доступна такаято функция...
3. Сочетание со стрелками (нереально в игре "вид сверху")
4. Ловить нажатие одновременно "вверх" и "вниз" ("влево" + "вправо") и тем самым переводить юзера в другой режим, допустим выбора функционирования FIRE кнопки...

...

есть у когонить еще какие варианты?

:)

moka 10.08.2006 05:44

Re: Кнопки
 
Про одновременные вверх и вниз не выйдет, т.к. если с джостика на мобиле играют, то 50% мобил, джостик такой, что не нажмётся.... тока тада с клавы...

Piligrim 10.08.2006 09:54

Re: Кнопки
 
Код:

      // Check user input and update positions if necessary
      int keyState = getKeyStates();
      if ((keyState & LEFT_PRESSED) != 0) {
          sprite.move(-1, 0);
      }
      else if ((keyState & RIGHT_PRESSED) != 0) {
          sprite.move(1, 0);
      }

если из этой же маски брать соответственно вверх и влево получим диагональ
GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED и GAME_D_PRESSED обычно проецируются на 1,3,7,9 с помощью getGameAction(int keyCode) как и джойстик на 2, 8, 4, 6

кроме keyPressed() есть еще события:
keyRepeated()
keyReleased()
для длительного нажатия и соответственно по таймеру вдойного и тройного!

SubZer0 10.08.2006 15:20

Re: Кнопки
 
Цитата:

Сообщение от pilgrim
GAME_A_PRESSED, GAME_B_PRESSED, GAME_C_PRESSED и GAME_D_PRESSED обычно проецируются на 1,3,7,9 с помощью getGameAction(int keyCode) как и джойстик на 2, 8, 4, 6

Всегда проецируются? в каждой мобиле? :)

SubZer0 10.08.2006 15:21

Re: Кнопки
 
Цитата:

Сообщение от MoKa
Про одновременные вверх и вниз не выйдет, т.к. если с джостика на мобиле играют, то 50% мобил, джостик такой, что не нажмётся.... тока тада с клавы...

рассмотрел как вариант, что кнопки Game_Up проецируются на цифровую клавиатуру девайса... а две циферки нажать думаю не проблема будет :)

Piligrim 11.08.2006 10:34

Re: Кнопки
 
В принципе проецирование - требование стандарта. А реализация дело уже конкртных производителей.


Часовой пояс GMT +4, время: 11:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot