Одновременное передвижение обьектов!?как

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Shasha
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 08.11.2005 (Вт) 15:09

Одновременное передвижение обьектов!?как

Сообщение Shasha » 08.11.2005 (Вт) 15:17

Здравствуйте!
пытаюсь сделать игру танки, необходимо, что бы за одной клавой было несколько игроков...
если писать так:
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = ...
то при движении обькта нажав клавишу передвигающую второй обьект, движение первого останавливается...
как сделать, что бы по нажати одвременном танки могли передвигаться?
пытался таймер втулить, ничего не получается!
приведите пожалуйста работающий пример.
зарание спасибо.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.11.2005 (Вт) 15:22

Смотри KeyDown.
Lasciate ogni speranza, voi ch'entrate.

Shasha
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 08.11.2005 (Вт) 15:09

Сообщение Shasha » 08.11.2005 (Вт) 15:34

alibek писал(а):Смотри KeyDown.

Смотрел.и кеуап тоже смотрел.
как программа сможет выполнить другой иф если предыдущий ещё не окончен!?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.11.2005 (Вт) 16:23

Значит, плохо смотрел.
Lasciate ogni speranza, voi ch'entrate.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 08.11.2005 (Вт) 16:50

Код: Выделить всё

Dim Keyb(255) As Boolean

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
  Keyb(KeyCode) = False
End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  Keyb(KeyCode) = True
End Sub



Соответственно обработка

Код: Выделить всё

      if Keyb(vbKeyUp) Then
        Tank1.Up
      ElseIf Keyb(vbKeyDown) Then
        Tank1.Down
      ElseIf Keyb(vbKeyRight) Then
        Tank1.Right
      ElseIf Keyb(vbKeyLeft) Then
        Tank1.Left
      End If
Пора уже всем хорошим людям собраться и убить всех плохих людей.

Shasha
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 08.11.2005 (Вт) 15:09

Сообщение Shasha » 08.11.2005 (Вт) 17:42

на форуме у меня 2 пикчербокса. Picture1 и Picture2 аля танки.
далее то что нужно доработать

Код: Выделить всё
Private Sub Form_KeyPress(KeyAscii As Integer)
'Picture1
If KeyAscii = 52 Then
   Picture1.Left = Picture1.Left - 50
  End If
 
  If KeyAscii = 54 Then
   Picture1.Left = Picture1.Left + 50
  End If
 
 
  If KeyAscii = 53 Then
   Picture1.Top = Picture1.Top + 50
  End If


  If KeyAscii = 56 Then
   Picture1.Top = Picture1.Top - 50
  End If




'Picture2

  If KeyAscii = 97 Then
   Picture2.Left = Picture2.Left - 50
  End If
 
  If KeyAscii = 100 Then
   Picture2.Left = Picture2.Left + 50
  End If
 
 
  If KeyAscii = 115 Then
   Picture2.Top = Picture2.Top + 50
  End If


  If KeyAscii = 119 Then
   Picture2.Top = Picture2.Top - 50
  End If

End Sub


в таком виде пикчеры перемещаются клаваим wasd(1) и 8456(2)
но по очереди!!!
Последний раз редактировалось Shasha 08.11.2005 (Вт) 18:28, всего редактировалось 1 раз.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 08.11.2005 (Вт) 18:24

По пять состояний на танк +один таймер. При дауне включаем состояние, при апе выключаем...

Zoomie
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 181
Зарегистрирован: 10.05.2004 (Пн) 10:07
Откуда: СПб

Сообщение Zoomie » 08.11.2005 (Вт) 19:10

Ээээ... ты брось такое дело! :)

При трех игроках в моей гаме системный динамик уже хрипел! Используй DirectInput

Shasha
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 106
Зарегистрирован: 08.11.2005 (Вт) 15:09

Сообщение Shasha » 08.11.2005 (Вт) 19:11

Дайти мне рабочий пример, что бы дват танка двигались одновременно,кто нить!!!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 97

    TopList