|
Нажатие двух клавиш одновременно.
|
|
|
30.04.2009 в 16:25
Сообщение #11
|
|
mustaeed
Непонятливый
Пользователи
Сообщений: 21
Offline
|
Ну вообщем была игра в ней всё работало. У меня есть переменная key = getkeypressed и gamekey = keyToAction(getKeypressed) key я не менял а gamekey заменил на game.get_key_states и там где проверяется чему равен гейм кей заменил на if game.get_bit(gamekey, LEFT_PRESSED)<>0 вначале добавил константы, uses game. Всё как в примере New project (который идёт с game lib), но почемуто либо mp вообще вылетает, либо midlet при запуске имеет белый экран. И как я уже сказал я в либе не нашёл возможности одноврмнного нажатия например клавиш 8 и 4. Или это я чёто не догнал или там этого действительно нет? Кстати посмотрел игры spiderman и bomberman там есть одновременное нажатие цифр, такчто это реализовать можно, и свою игру(шутер) я без этого не представляю, иначе скорее всего ничего не получится.
Сообщение отредактировал mustaeed - Четверг, 30.04.2009, 16:30
|
|
|
|
|
01.05.2009 в 00:55
Сообщение #12
|
|
12121
Программист
Проверенные
Сообщений: 357
Offline
|
В примере Mu Tank исправь init; на init(0); мне это помогло. Сегодня пробовал получается что бы было изображение нужно всю графику выводить через эту либу. После init ничего другое не срабатывает. Очень не удобно. Вот еще либа. Глянь может тебе подойдет больше. На телефоне джойстик и цифровые кнопки скорее всего распознаются одинаково. Запусти на телефоне и посмотри.
|
|
|
|
|
01.05.2009 в 01:03
Сообщение #13
|
|
12121
Программист
Проверенные
Сообщений: 357
Offline
|
что бы либа keys работала поставь в свойствах midp2 full screen. Там 1 функция get_key_states возвращает коды нажатых клавиш.
|
|
|
|
|
01.05.2009 в 05:25
Сообщение #14
|
|
mustaeed
Непонятливый
Пользователи
Сообщений: 21
Offline
|
не подошла там клавиши 9,3,7,1 не распознаются. есть ещё какието либы?
|
|
|
|
|
01.05.2009 в 08:00
Сообщение #15
|
|
12121
Программист
Проверенные
Сообщений: 357
Offline
|
Ну так обычно нажимаются вместе например 2 и 6 . А 9,3,7,1 проверь как обычно. Все таки есть некоторые ограничения которые никак не обойдешь. Посмотри исходник либы там всего 1 функция явы и она просто передается в МП. Кроме 4 направлений и стрельбы есть еще клавиши A,B,C,D. Каждый телефон сам определит какие это будут клавиши. Вот на них и расчитывай. Их нажатие можно отследить в любой комбинации. Это самое лучшее
Сообщение отредактировал 12121 - Пятница, 01.05.2009, 08:10
|
|
|
|
|
01.05.2009 в 11:19
Сообщение #16
|
|
mustaeed
Непонятливый
Пользователи
Сообщений: 21
Offline
|
что за a b c d? А если мне нужно одновременно нажать например стрелку вправо и 3 для стрельбы на 45 градусов по диаганали вправо-вверх, одну стрелку вправо для бега вправо и одну 3ку для стрельбы вверх одновременно стрелку вправо и 6ку для стрельбы и бега вправо. как это ещё можно реализовать чтобы это было удобно я не представляю.
|
|
|
|
|
01.05.2009 в 13:06
Сообщение #17
|
|
12121
Программист
Проверенные
Сообщений: 357
Offline
|
А кто так будет играть ? Я бы такую игру удалил через 2 минуты. И 2 клавиши нажимать сразу не очень удобно. Может сделаешь стельбу небольшой очередью. Нажал стрелять и пока идут штук 5 выстрелов Идешь вперед.
|
|
|
|
|
01.05.2009 в 13:14
Сообщение #18
|
|
12121
Программист
Проверенные
Сообщений: 357
Offline
|
Игра у тебя проходилка ?
|
|
|
|
|
01.05.2009 в 13:31
Сообщение #19
|
|
12121
Программист
Проверенные
Сообщений: 357
Offline
|
A b c d это будут например * 0 # можно сделать если перед стрельбой была нажата 3 то стреляем вверх и вправо. Если 6 то просто вправо. 1 шажок вперед роли не сыграет ? Это не сложно привыкнуть. И сделать не сложно. Просто добавляешь к текстовой переменной нажатые клавиши а перед стрельбой проверяешь что было раньше нажато. Или просто хранишь последнюю нажатую. Где то так
|
|
|
|
|
01.05.2009 в 14:21
Сообщение #20
|
|
121212
Программист
Проверенные
Сообщений: 268
Offline
|
var jizki, key,s:integer; begin drawText('Жизни='+jizki, 0, 20); jizki:=50; s:=0; repeat key :=GetKeyPressed; if (s=0) and (key=KE_KEY2) then s:=1; if (s=1) and (key=KE_KEY2) then s:=2; if (s=2) and (key=KE_KEY3) then s:=3; if s=3 then jizki:=500; until false; end. и не паримся
Сообщение отредактировал 121212 - Пятница, 01.05.2009, 14:32
|
|
|
|