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

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

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

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

Закрытая тема
 
Опции темы
Старый 24.07.2007, 15:27   #1
Alex_Noc
Разработчик
 
Регистрация: 02.04.2007
Сообщений: 353
Написано 54 полезных сообщений
(для 289 пользователей)
Shift+up

как сделать нажатие двух клавишь одновременно , например для "красться" или для переключиться в бег (когда нажата кнопка "up" и вдруг надо срочно ускориться , жму на "шифт" но эффекта нет. Пробовал так : if keydown () and keydown() then действие
и еще пробовал так: красться=keydown ()+keydown ()
if красться=2 then действие вобщем почемуто не получилось , очень нужно . Заранее спасибо!
(Offline)
 
Старый 24.07.2007, 15:54   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Shift+up

Кнопки привязывай к переменным.
В начале цикла:
IKdSft=KeyDown(...)
IKdUp=KeyDown(...)
If IKdSft+IKdUp=2
Endif
(Offline)
 
Старый 26.07.2007, 15:25   #3
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Shift+up

if keydown("UP")
if keydown("SHIFT")
.......
endif
endif
(Offline)
 
Старый 26.07.2007, 15:37   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Shift+up

IGR
А если кнопка используеться много раз в цикле? Привязка наилучший способ. Всё в чистоте и порядке тогда будет.
А при твоей раскладке, будут неправильные обновления, это как если сделать сперва проверку на координаты, а только потом нажата ли мышка, тогда будет баг, что если нажать вне координат кнопки, затем навести, она нажмёться. Вот такие пироги
(Offline)
 
Старый 26.07.2007, 19:05   #5
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Shift+up

ну да Ты прав !!
но я так делал и нечё !!
(Offline)
 
Старый 26.07.2007, 19:36   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Shift+up

IGR
Может быть и ничего. но всякое бывает, потом будет чего
Лучше изначально стиль кодинга развивать, чтобы потом себя на ошибках не ловить.
(Offline)
 
Старый 03.08.2007, 01:37   #7
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Shift+up

MoKa, попробую доказать что твой стиль тормознее чем силь ИГРа
ты вначале цилка проверяешь все кнопки.

в коде не могут 2 раза в цикле проверяться нажатие одной кнопки(если у кодера конечно руки прямые). ведь для каждой кнопки 1 действие. могут быть конечно разные части игры и в них кнопка выполняет раные действия. но части игры то разные и повтора проверки нажатия кнопки не будет.

и получается если допустим в игре используется 10 разных кнопок, то в твоем случае 10 проверок каждый цикл. а в случае ИГРа может быть и меньше проверок. например 8 в игре. а еще 2 в меню.
вот такая вот арифметика))
(Offline)
 
Старый 03.08.2007, 10:07   #8
jimon
 
Сообщений: n/a
Re: Shift+up

Leito
то что дал MoKa более работоспособное чем то что предложил IGR
потому что ето намного удобнее для последуйшей реализации изменения управления

притом надо систематизировать где ты читаеш клавиши, и не разбрасывать по коду

и функции keydown \ keyhit ето простое обращение к внутренему масиву
 
Старый 03.08.2007, 11:38   #9
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Shift+up

Такая систематизация только лишние ресурсы хавает. А эффект тот же. Тут от прогера зависит в общем. Как удобней - так и будет.
(Offline)
 
Старый 03.08.2007, 11:47   #10
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Shift+up

Тут от прогера зависит в общем. Как удобней - так и будет.
а ещо зависит от предназначения кода !! в каждой ситуации есть свой оптимальный вариант !!
(Offline)
 
Старый 03.08.2007, 15:06   #11
jimon
 
Сообщений: n/a
Re: Shift+up

JohnK
ничего она не хавает
два if хавают больше чем два keyhit
притом народ не туда смотрите ... тут нету никаких принципиальных оптимизаций
вот критические оптимизации когда векторые расчеты идут ... вот там надо смотреть что быстрее
 
Старый 03.08.2007, 15:22   #12
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Shift+up

jimon
зато лишнии затрааты оперативной памяти
4*кол-во кнопок - байт.
на глобальные переменные
(Offline)
 
Старый 03.08.2007, 16:01   #13
jimon
 
Сообщений: n/a
Re: Shift+up

Leito
ну если руки из правильного места растут то 1*кол_кнопок байт
так короче не холиварим, такие оптимизации до лампочки в конечном продукте
 
Старый 03.08.2007, 16:18   #14
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Re: Shift+up

jimon
зато лишнии затрааты оперативной памяти
4*кол-во кнопок - байт.
на глобальные переменные
опаньки - руки не из жопаньки:
INT(кол-во_кнопок/8.0) - байт
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Старый 03.08.2007, 16:36   #15
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Shift+up


Что вы заварили кашу =)
Я просто высказал своё мнение, т.к. расчитываю наперёд, что будет удобнее и т.п.
Да и Johnk, теперь возьми такой код:
If MouseX()>100
   If MouseX()<150
      If MouseY()>100
         If MouseY()<150
            If MouseHit(1)
               RuntimeError "Hited"
            Endif
         EndIf
      Endif
   EndIf
EndIf
И вот этот код:
mX=MouseX()
mY=MouseY()
IMh1=MouseHit(1)
If mX>100
   If mX<150
      If mY>100
         If mY<150
            If IMh1
               RuntimeError "Hited"
            EndIf
         EndIf
      EndIf
   EndIf
EndIf
И скажи, что лучше, что быстрее? И что удобнее?
И сразу скажу, в 1 варрианте, если нажать не в зоне, а потом навести, тогда будет нажата, в во 2 варрианте такого бага не будет.
И вообще заканчиваем оффтоп
(Offline)
 
Закрытая тема


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра Shift v1.1.0 mrsandy Проекты на MidletPascal 2 18.02.2011 13:12


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


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