Игры на visual basic
Итак, мы, наконец-то, добрались до создания игры. Если честно, то я первый раз пробовал создать игру типаPinBall и поэтому код, наверняка, получился слишком большой для этой игры.(Пожалуйста, не бойтесь размера кода! Он ОЧЕНЬ простой!)Я не знаю! Как умею, так и показываю! Вот то, что должно получиться:
рис.1
рис.2
Рис.1 Видите эту странную границу формы - это вXP такие и я стал счастливым обладателем этой ОСи!
Вам понадобится:
-
Форма с именем Form1
-
Два shape"а с именами A и B, и свойством Shape равное "4"
-
Еще один shape с именем Ball, свойство Shape делаем равным "2". Затем придаем ему форму шара.
-
Теперь делаем 8 (да-да, вы не ослышались!=) таймеров с их первоначальными именами. Делаем для них свойства:
-
Timer1.Interval = 1
-
Timer2.Interval = 1
-
Timer3.Interval = 1
-
Timer4.Interval = 1
-
Timer5.Interval = 1
-
Timer6.Interval = 1
-
Timer7.Interval = 1
-
Timer8.Interval = 2500
Теперь код:
Private SubForm_KeyDown(KeyCode As Integer, Shift As Integer)
" если нажата кнопка "вправо", то бита "А" едет вправо
If KeyCode = 39 Then
A.Left = A.Left + 120
End If
" если нажата кнопка "влево", то бита "А" едет влево
If KeyCode = 37 Then
A.Left = A.Left - 120
End If
" если нажата кнопка "S", то бита "B" едет вправо
If KeyCode = 83 Then
B.Left = B.Left + 120
End If
" если нажата кнопка "A", то бита "B" едет вправо
If KeyCode = 65 Then
B.Left = B.Left - 120
End If
End Sub
Private SubTimer1_Timer()
" надеюсь тут вы разберетесь, так как коментарии "излишни" ;)
" подскажу только, что это расчитывается куда отскочет мяч
" это зависит от того куда попал мяч (см. рис2)
If Ball.Top > A.Top - 240 And Ball.Left = A.Left Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer3.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 120 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer3.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 240 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer3.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 360 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer3.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 480 Then
Timer4.Enabled = False
Timer2.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 600 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer5.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 720 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer5.Enabled = True
End If
If Ball.Top > A.Top - 240 And Ball.Left = A.Left + 840 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer7.Enabled = False
Timer5.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer5.Enabled = False
Timer7.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 120 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer5.Enabled = False
Timer7.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 240 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer5.Enabled = False
Timer7.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 360 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer6.Enabled = False
Timer5.Enabled = False
Timer7.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 480 Then
Timer2.Enabled = False
Timer4.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 600 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer7.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 720 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer7.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = True
End If
If Ball.Top < B.Top + 240 And Ball.Left = B.Left + 840 Then
Timer4.Enabled = False
Timer2.Enabled = False
Timer3.Enabled = False
Timer7.Enabled = False
Timer5.Enabled = False
Timer6.Enabled = True
End If
" мячик отскакивает от правой стенки экрана
If Ball.Left > Me.Width - 345 Then
If Timer5.Enabled = True Then
Ball.Left = Ball.Left - 120
Timer5.Enabled = False
Timer3.Enabled = True
End If
If Timer6.Enabled = True Then
Ball.Left = Ball.Left - 120
Timer6.Enabled = False
Timer7.Enabled = True
End If
End If
" мячик отскакивает от левой стенки экрана
If Ball.Left < Line1.X1 + 10 Then
If Timer3.Enabled = True Then
Ball.Left = Ball.Left + 120
Timer3.Enabled = False
Timer5.Enabled = True
End If
If Timer7.Enabled = True Then
Ball.Left = Ball.Left + 120
Timer7.Enabled = False
Timer6.Enabled = True
End If
End If
" мячик отскакивает от верхней и нижней стенки экрана
If Ball.Top > Me.Height - 735 Or Ball.Top < 120 Then
Ball.Top = 3600
Ball.Left = 4440
Timer8.Enabled = True
End If
End Sub
" таймеры задающие направление мяча
Private Sub Timer2_Timer()
Ball.Top = Ball.Top - 30
End Sub
Private SubTimer4_Timer()
Ball.Top = Ball.Top + 30
End Sub
Private SubTimer3_Timer()
Ball.Top = Ball.Top - 30
Ball.Left = Ball.Left - 30
End Sub
Private SubTimer5_Timer()
Ball.Top = Ball.Top - 30
Ball.Left = Ball.Left + 30
End Sub
Private SubTimer6_Timer()
Ball.Top = Ball.Top + 30
Ball.Left = Ball.Left + 30
End Sub
Private SubTimer7_Timer() Готовый пример можно скачатьздесь.
Ball.Top = Ball.Top + 30
Ball.Left = Ball.Left - 30
End Sub