|
2D-программирование Вопросы, касающиеся двумерного программирования |
16.05.2011, 14:29
|
#1
|
Оператор ЭВМ
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений (для 9 пользователей)
|
Вопрос по клавишам
Можно ли сделать вот так?
if Keyhit(200) after KeyDown(200) then moveEntity c,0,0,3
Прост ошибку выдает
|
(Offline)
|
|
16.05.2011, 14:33
|
#2
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: Вопрос по клавишам
Ммм это что???
Зачем ты туда after воткнул??
И в чем смысл KeyHit(200) потом KeyDown(200) ???
Что сделать то хочешь???
А так конечно ошибка будет
__________________
|
(Offline)
|
|
16.05.2011, 14:36
|
#3
|
Оператор ЭВМ
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: Вопрос по клавишам
Ну смотри. Если я нажал клавишу вверх, то обьект будет двигатся со скоростью 1.
Мне нужно что бы 1 раз нажал и на 2 раз уже зажимаешь кнопку то он двигался со скоростью 3.
|
(Offline)
|
|
16.05.2011, 14:46
|
#4
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: Вопрос по клавишам
Сообщение от Clip
Ну смотри. Если я нажал клавишу вверх, то обьект будет двигатся со скоростью 1.
Мне нужно что бы 1 раз нажал и на 2 раз уже зажимаешь кнопку то он двигался со скоростью 3.
|
Что то я тебя опять понять не могу
KeyDown() Будет выполнять действие пока клавиша зажата
KeyHit() Будет выполнять один раз действие при нажатие клавиши
Тебе надо как???
Ты нажимаешь KeyDown() объект двигается со скоростью к примеру 1, последующие нажатие клавиши чтоб скорость постепенно увеличивалась или как??? Или чтоб она при зажатой клавише прибавлялась???
__________________
|
(Offline)
|
|
16.05.2011, 14:58
|
#5
|
Оператор ЭВМ
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: Вопрос по клавишам
нужно: 1 раз нажал - ничего не произошло.
2 раза нажал он двигается со скоростью 3(на 2 раз зажимаю)
|
(Offline)
|
|
16.05.2011, 15:01
|
#6
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Вопрос по клавишам
делаешь переменную которая считает количество нажатий нужной тебе клавиши.
что то наподобие этого:
If KeyHit(200) then
key_up = key_up + 1
if key_up > 2 then key_up = 1
end if
if KeyDown(200)
if key_up = 1
moveentity cub, 0, 0, 1
else
moveentity cub, 0, 0, 3
end if
end if
упд: варианты другие ещё полюбому должны быть. Этот первый в голову пришёл (он чреват кучей условий, как следствие - невысокая скорость работы при таком употреблении if'ов (ну, где нибудь в будущем )).
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
16.05.2011, 15:15
|
#7
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: Вопрос по клавишам
Думаю понятно будет )
If KeyHit(200)
key=key+1
EndIf
If KeyDown(200) And key=2 Then MoveEntity cub,0,0,3
If KeyDown(200) And key=4 Then MoveEntity cub,0,0,6
If KeyDown(200) And key=6 Then MoveEntity cub,0,0,9
Хотя выше уже ответили ))
Переменная key считает сколько раз нажал клавишу далее смотрим если зажата клавиши вверх и key = своему значению, то двигаем объект...
__________________
|
(Offline)
|
|
16.05.2011, 15:54
|
#8
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Вопрос по клавишам
Люди! Вы что?!
After используется только для типов он никаким боком с клавишами не связан.
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
16.05.2011, 15:58
|
#9
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: Вопрос по клавишам
Сообщение от Gector
Люди! Вы что?!
After используется только для типов он никаким боком с клавишами не связан.
|
А где ты увидел чтоб я или St_AnGer его приписали
Это создатель вопроса его воткнул туда ))) Ну так как он видать только начинающий, в подробности что и для чего After предназначен я объяснять не стал
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.05.2011, 16:06
|
#10
|
Легенда
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений (для 5,072 пользователей)
|
Ответ: Вопрос по клавишам
Сообщение от maxturbo
А где ты увидел чтоб я или St_AnGer его приписали
Это создатель вопроса его воткнул туда ))) Ну так как он видать только начинающий, в подробности что и для чего After предназначен я объяснять не стал
|
Просто это довольно грубая ошибка). А автору никто не сказал что он натворил).
__________________
Ибо как сказал Бгдн:
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Gector за это полезное сообщение:
|
|
16.05.2011, 17:08
|
#11
|
Оператор ЭВМ
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений (для 9 пользователей)
|
Ответ: Вопрос по клавишам
Я увидел в хелпе эту команду. и подумал может быть её мжно будет исп. =)
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
16.05.2011, 19:07
|
#12
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: Вопрос по клавишам
Сообщение от Clip
Я увидел в хелпе эту команду. и подумал может быть её мжно будет исп. =)
|
Ну, а что же внимательней не почитал то
__________________
|
(Offline)
|
|
17.05.2011, 10:37
|
#13
|
Мастер
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений (для 504 пользователей)
|
Ответ: Вопрос по клавишам
Сообщение от maxturbo
Думаю понятно будет )
If KeyHit(200)
key=key+1
EndIf
If KeyDown(200) And key=2 Then MoveEntity cub,0,0,3
If KeyDown(200) And key=4 Then MoveEntity cub,0,0,6
If KeyDown(200) And key=6 Then MoveEntity cub,0,0,9
Хотя выше уже ответили ))
Переменная key считает сколько раз нажал клавишу далее смотрим если зажата клавиши вверх и key = своему значению, то двигаем объект...
|
Переменную key когда-то следует обнулить..
Через 40 мксек. (кадров) повторное нажатие отменяется.
If KeyHit(200)
If key=0 Then key_time=0
key=key+1
key_speed=key
EndIf
If KeyDown(200) Then MoveEntity hero,0,0,key_speed*0.3
key_time=key_time+1
If key_time>40 Then
key=0
key_time=0
EndIf
Работоспособно на тройной разгон.
Примечание: скорость повторного нажатия 1 клавиши = 20 мксек.
|
(Offline)
|
|
17.05.2011, 11:04
|
#14
|
Разработчик
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений (для 66 пользователей)
|
Ответ: Вопрос по клавишам
Сообщение от LLI.T.A.L.K.E.R.
Переменную key когда-то следует обнулить..
Через 40 мксек. (кадров) повторное нажатие отменяется.
If KeyHit(200)
If key=0 Then key_time=0
key=key+1
key_speed=key
EndIf
If KeyDown(200) Then MoveEntity hero,0,0,key_speed*0.3
key_time=key_time+1
If key_time>40 Then
key=0
key_time=0
EndIf
Работоспособно на тройной разгон.
Примечание: скорость повторного нажатия 1 клавиши = 20 мксек.
|
Это понятно, что ее когда нибудь надо обнулить
__________________
|
(Offline)
|
|
06.06.2011, 18:12
|
#15
|
ПроЭктировщик
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений (для 18 пользователей)
|
Ответ: Вопрос по клавишам
Так как здесь вопрос по клавишах хочу задать вопрос. Как определять цифровую клавиатуру та что с правой стороны клавиатуры? Я пробовал ставить код клавиши допустим "1"-79 но ничего не происходить.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:50.
|