Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отлов нажатий клавиш по форме 
V
    Опции темы
cardinal
Дата 9.1.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Поэтому скорость над сделать стабильной, а в цикле только начинать/останавливать движение...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Кирилл
Дата 10.1.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 7.11.2006
Где: Воронеж

Репутация: 1
Всего: 1



    Do
        If DoEvents Then
            a = GetAsyncKeyState(vbKeyEscape)
            If a < 0 Then End
            a = GetAsyncKeyState(vbKeyUp)
            If a < 0 Then Command1.Top = Command1.Top - 10
            a = GetAsyncKeyState(vbKeyDown)
            If a < 0 Then Command1.Top = Command1.Top + 10
        End If
    Loop
Ето работает, но так нельзя. Когда пользователь нажимает клавишу, он её немного удерживает, и за это время Command1 перемещается...
А почему нельзя через таймер, как предлагал cardinal? Вроде неплохо
Код

Private Sub Timer1_Timer()
    a = GetAsyncKeyState(vbKeyEscape)
    If a < 0 Then End
    a = GetAsyncKeyState(vbKeyUp)
    If a < 0 Then Command1.Top = Command1.Top - 100
    a = GetAsyncKeyState(vbKeyDown)
    If a < 0 Then Command1.Top = Command1.Top + 100
    ' Двигаем снаряды, врагов...
End Sub


Это сообщение отредактировал(а) Кирилл - 10.1.2007, 11:14
PM MAIL   Вверх
Black_Star
Дата 10.1.2007, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 9.9.2003
Где: Minsk

Репутация: 4
Всего: 4



Цитата

Do
        If DoEvents Then
            Select Case a
                Case GetAsyncKeyState(vbKeyEscape) < 0
                    End
   .....

Из этого я ничего не понял  smile 

Цитата(Кирилл @  9.1.2007,  19:56 Найти цитируемый пост)
Но для них нужна задержка, а то скорость перемещения будет зависето только от скорости выполнения цикла. По мойму плохо...

Эх...
Код

dim ml_EnemyPause=50
...
...
Do
   call MoveEnemy
   ...
loop
...
...
Sub MoveEnemy()
  if ml_EnemyPause then
    ml_EnemyPause=  ml_EnemyPause-1
    Exit Sub
  end if
  ml_EnemyPause=50
  ...
  Enemy.Top=Enemy.Top+100
  ...
End Sub


Цитата(Кирилл @  10.1.2007,  10:57 Найти цитируемый пост)
А почему нельзя через таймер, как предлагал cardinal? Вроде неплохо

Почему нельзя? Вариантов куча. Можно и через таймер. Только таймер - тормоз, да и лишний обработчик к проге.
Как бы то не было, я всеравно держусь своего взгляда. А как делать - тебе решать.
Когда-нибудь потом может и вспомнишь мой пример  smile  авось пригодится?
PM ICQ   Вверх
Кирилл
Дата 10.1.2007, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 7.11.2006
Где: Воронеж

Репутация: 1
Всего: 1



Договорились, забывать не буду smile 
Всем спасибо, господа, я с вами прощаюсь, но не на долго! smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0748 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.