Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 16.05.2011, 14:29   #1
Clip
Оператор ЭВМ
 
Регистрация: 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
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Вопрос по клавишам

Ммм это что???
Зачем ты туда after воткнул??
И в чем смысл KeyHit(200) потом KeyDown(200) ???
Что сделать то хочешь???
А так конечно ошибка будет
__________________
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 14:36   #3
Clip
Оператор ЭВМ
 
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений
(для 9 пользователей)
Ответ: Вопрос по клавишам

Ну смотри. Если я нажал клавишу вверх, то обьект будет двигатся со скоростью 1.
Мне нужно что бы 1 раз нажал и на 2 раз уже зажимаешь кнопку то он двигался со скоростью 3.
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 14:46   #4
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Вопрос по клавишам

Сообщение от Clip Посмотреть сообщение
Ну смотри. Если я нажал клавишу вверх, то обьект будет двигатся со скоростью 1.
Мне нужно что бы 1 раз нажал и на 2 раз уже зажимаешь кнопку то он двигался со скоростью 3.
Что то я тебя опять понять не могу
KeyDown() Будет выполнять действие пока клавиша зажата
KeyHit() Будет выполнять один раз действие при нажатие клавиши
Тебе надо как???
Ты нажимаешь KeyDown() объект двигается со скоростью к примеру 1, последующие нажатие клавиши чтоб скорость постепенно увеличивалась или как??? Или чтоб она при зажатой клавише прибавлялась???
__________________
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 14:58   #5
Clip
Оператор ЭВМ
 
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений
(для 9 пользователей)
Ответ: Вопрос по клавишам

нужно: 1 раз нажал - ничего не произошло.
2 раза нажал он двигается со скоростью 3(на 2 раз зажимаю)
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 15:01   #6
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 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
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Вопрос по клавишам

Люди! Вы что?!
After используется только для типов он никаким боком с клавишами не связан.
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Старый 16.05.2011, 15:58   #9
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Вопрос по клавишам

Сообщение от Gector Посмотреть сообщение
Люди! Вы что?!
After используется только для типов он никаким боком с клавишами не связан.
А где ты увидел чтоб я или St_AnGer его приписали
Это создатель вопроса его воткнул туда ))) Ну так как он видать только начинающий, в подробности что и для чего After предназначен я объяснять не стал
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Gector (16.05.2011)
Старый 16.05.2011, 16:06   #10
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Вопрос по клавишам

Сообщение от maxturbo Посмотреть сообщение
А где ты увидел чтоб я или St_AnGer его приписали
Это создатель вопроса его воткнул туда ))) Ну так как он видать только начинающий, в подробности что и для чего After предназначен я объяснять не стал
Просто это довольно грубая ошибка). А автору никто не сказал что он натворил).
__________________
Ибо как сказал Бгдн:
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Gector за это полезное сообщение:
maxturbo (16.05.2011), St_AnGer (16.05.2011)
Старый 16.05.2011, 17:08   #11
Clip
Оператор ЭВМ
 
Регистрация: 17.04.2011
Сообщений: 45
Написано 7 полезных сообщений
(для 9 пользователей)
Ответ: Вопрос по клавишам

Я увидел в хелпе эту команду. и подумал может быть её мжно будет исп. =)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Gector (16.05.2011)
Старый 16.05.2011, 19:07   #12
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 19.05.2009
Адрес: Россия Иркутская область
Сообщений: 350
Написано 51 полезных сообщений
(для 66 пользователей)
Ответ: Вопрос по клавишам

Сообщение от Clip Посмотреть сообщение
Я увидел в хелпе эту команду. и подумал может быть её мжно будет исп. =)
Ну, а что же внимательней не почитал то
__________________
(Offline)
 
Ответить с цитированием
Старый 17.05.2011, 10:37   #13
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 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
maxturbo
Разработчик
 
Аватар для maxturbo
 
Регистрация: 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
Petrofan
ПроЭктировщик
 
Аватар для Petrofan
 
Регистрация: 26.08.2008
Сообщений: 149
Написано 10 полезных сообщений
(для 18 пользователей)
Ответ: Вопрос по клавишам

Так как здесь вопрос по клавишах хочу задать вопрос. Как определять цифровую клавиатуру та что с правой стороны клавиатуры? Я пробовал ставить код клавиши допустим "1"-79 но ничего не происходить.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com