Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
V@NY$
-
- Начинающий

-
-
- Сообщения: 5
- Зарегистрирован: 28.01.2005 (Пт) 19:16
V@NY$ » 28.01.2005 (Пт) 19:51
пожалусто не надо говорить что я тупой и мне здесь нечего делать...
как зделать чтобы у меня на форме например shape при движении не мерцал?
я знаю что надо использовать BitBlt или DirectX, но у меня не получается. прочитал статьи по DirectX и у меня не получилось зделать работующий проект (не понял там ни одной строчки

).
-
Ruslan Demidow
-
- Мужчина!

-

-
- Сообщения: 987
- Зарегистрирован: 25.03.2004 (Чт) 13:39
- Откуда: N.Novgorod
-
Ruslan Demidow » 28.01.2005 (Пт) 23:54
V@NY$ писал(а):пожалусто не надо говорить что я тупой и мне здесь нечего делать...
как зделать чтобы у меня на форме например shape при движении не мерцал?
я знаю что надо использовать BitBlt или DirectX, но у меня не получается. прочитал статьи по DirectX и у меня не получилось зделать работующий проект (не понял там ни одной строчки

).
Приведи свой код - как ты пытался это сделать.
И тебе помогут. А не видя кода, решать за тебя задачу - это вряд ли кто-нибудь будет делать.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух
-
V@NY$
-
- Начинающий

-
-
- Сообщения: 5
- Зарегистрирован: 28.01.2005 (Пт) 19:16
V@NY$ » 29.01.2005 (Сб) 12:56
- Код: Выделить всё
Dim all As Integer
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim W As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyW
TUp.Enabled = True
Case vbKeyS
TDown.Enabled = True
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyW
TUp.Enabled = False
Case vbKeyS
TDown.Enabled = False
End Select
End Sub
Private Sub GO_Click()
Gravity.Enabled = True
GO.Visible = False
End Sub
Private Sub Gravity_Timer()
Ship.Top = Ship.Top + SpeedD.Caption
SpeedD.Caption = SpeedD.Caption + (Mass.Caption / 2)
If SpeedD.Caption <= (-Power.Caption) Then
SpeedD.Caption = (-Power.Caption)
End If
BoxAnalize
End Sub
Sub BoxAnalize()
Randomize
If W >= 1000 Then
GTime.Caption = GTime.Caption + 1
W = 0
MoveB.Caption = MoveB.Caption + 1
Else
W = W + 20
End If
For all = 0 To 17
If (Ship.Top + Ship.Height) >= Box(all).Top Then
If Ship.Top <= (Box(all).Top + Box(all).Height) Then
If Ship.Left <= (Box(all).Left + Box(all).Width) Then
If (Ship.Left + Ship.Width) >= Box(all).Left Then
EndE
End If
End If
End If
End If
X = X + 1
If X >= 500 Then
X = 0
Dlinna.Caption = Dlinna.Caption + 1
End If
'============================================================
Box(all).Left = Box(all).Left - MoveB.Caption
If Box(all).Left + Box(all).Width < 0 Then
Box(all).Left = Form1.ScaleWidth
If all >= 0 And all <= 7 Then
Y = Int(Rnd * (-1000))
Box(all).Top = Form1.ScaleHeight + Y
Box(all).Height = Y * (-1)
End If
If all >= 8 And all <= 15 Then
X = Int(Rnd * (1000))
Box(all).Top = 0
Box(all).Height = X
End If
If all >= 16 And all <= 17 Then
Box(all).Top = Int(Rnd * (Form1.ScaleHeight))
Box(all).Height = Int(Rnd * (200)) + 200
Box(all).Left = Int(Rnd * (Form1.ScaleWidth) / 2) + Form1.ScaleWidth
End If
End If
'============================================================
Next
End Sub
Private Sub TUp_Timer()
SpeedD.Caption = SpeedD.Caption - Power.Caption / 10
If SpeedD.Caption <= (-Power.Caption) Then
SpeedD.Caption = (-Power.Caption)
End If
End Sub
Sub EndE()
MsgBox Dlinna.Caption
End
End Sub
-
A.A.Z.
-
- Член-корреспондент академии VBStreets

-
-
- Сообщения: 3035
- Зарегистрирован: 30.06.2003 (Пн) 13:38
-
A.A.Z. » 29.01.2005 (Сб) 13:01
Я вижу, у тебя там несколько объектов на форме, но не вижу, каких

Было бы лучше, если бы ты сюда сам проект кинул

-
V@NY$
-
- Начинающий

-
-
- Сообщения: 5
- Зарегистрирован: 28.01.2005 (Пт) 19:16
V@NY$ » 29.01.2005 (Сб) 13:07
А как это сделать?
-
A.A.Z.
-
- Член-корреспондент академии VBStreets

-
-
- Сообщения: 3035
- Зарегистрирован: 30.06.2003 (Пн) 13:38
-
A.A.Z. » 29.01.2005 (Сб) 13:09
Да просто открой твой файл формы (Form1.frm)
блокнотом и скопируй сюда весь текст

-
V@NY$
-
- Начинающий

-
-
- Сообщения: 5
- Зарегистрирован: 28.01.2005 (Пт) 19:16
V@NY$ » 29.01.2005 (Сб) 13:19
- Код: Выделить всё
VERSION 5.00
Begin VB.Form Form1
BackColor = &H003069C0&
BorderStyle = 4 'Fixed ToolWindow
Caption = "Form1"
ClientHeight = 3195
ClientLeft = 45
ClientTop = 285
ClientWidth = 4770
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3195
ScaleWidth = 4770
ShowInTaskbar = 0 'False
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton GO
Caption = "GO!"
Height = 375
Left = 3840
TabIndex = 5
Top = 120
Width = 735
End
Begin VB.Timer Gravity
Enabled = 0 'False
Interval = 20
Left = 1200
Top = 1845
End
Begin VB.Timer TDown
Enabled = 0 'False
Interval = 20
Left = 1200
Top = 1425
End
Begin VB.Timer TUp
Enabled = 0 'False
Interval = 20
Left = 1200
Top = 1005
End
Begin VB.Label GTime
BorderStyle = 1 'Fixed Single
Caption = "0"
Height = 255
Left = 1200
TabIndex = 6
Top = 120
Width = 735
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 165
Index = 17
Left = 2760
Top = 2880
Width = 300
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 165
Index = 16
Left = 240
Top = 2880
Width = 300
End
Begin VB.Label Dlinna
BorderStyle = 1 'Fixed Single
Caption = "0"
Height = 255
Left = 1920
TabIndex = 4
Top = 120
Width = 735
End
Begin VB.Label MoveB
BorderStyle = 1 'Fixed Single
Caption = "40"
Height = 255
Left = 3240
TabIndex = 3
Top = 2880
Width = 735
End
Begin VB.Label SpeedD
BorderStyle = 1 'Fixed Single
Caption = "0"
Height = 255
Left = 3960
TabIndex = 2
Top = 2910
Width = 735
End
Begin VB.Label Mass
BorderStyle = 1 'Fixed Single
Caption = "5"
Height = 255
Left = 3960
TabIndex = 1
Top = 2655
Width = 735
End
Begin VB.Label Power
BorderStyle = 1 'Fixed Single
Caption = "60"
Height = 255
Left = 3960
TabIndex = 0
Top = 2400
Width = 735
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 15
Left = 4200
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 14
Left = 3600
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 13
Left = 3000
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 12
Left = 2400
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 11
Left = 1800
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 10
Left = 1200
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 9
Left = 600
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 195
Index = 8
Left = 0
Top = 800
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 7
Left = 4200
Top = 2160
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 6
Left = 3600
Top = 2160
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 5
Left = 3000
Top = 2160
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 4
Left = 2400
Top = 2160
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 3
Left = 1800
Top = 2160
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 2
Left = 1200
Top = 2160
Width = 615
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 1
Left = 600
Top = 2160
Width = 615
End
Begin VB.Shape Ship
BackColor = &H00C0C000&
BackStyle = 1 'Opaque
Height = 255
Left = 1800
Top = 1320
Width = 375
End
Begin VB.Shape Box
BackColor = &H00004080&
BackStyle = 1 'Opaque
Height = 200
Index = 0
Left = 0
Top = 2160
Width = 615
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim all As Integer
Dim X As Integer
Dim Y As Integer
Dim Z As Integer
Dim W As Integer
Dim VANYS As Integer
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyW
TUp.Enabled = True
Case vbKeyS
TDown.Enabled = True
End Select
End Sub
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyW
TUp.Enabled = False
Case vbKeyS
TDown.Enabled = False
End Select
End Sub
Private Sub GO_Click()
Gravity.Enabled = True
GO.Visible = False
End Sub
Private Sub Gravity_Timer()
Ship.Top = Ship.Top + SpeedD.Caption
SpeedD.Caption = SpeedD.Caption + (Mass.Caption / 2)
If SpeedD.Caption <= (-Power.Caption) Then
SpeedD.Caption = (-Power.Caption)
End If
BoxAnalize
End Sub
Sub BoxAnalize()
Randomize
If W >= 1000 Then
GTime.Caption = GTime.Caption + 1
W = 0
MoveB.Caption = MoveB.Caption + 1
Else
W = W + 20
End If
For all = 0 To 17
If (Ship.Top + Ship.Height) >= Box(all).Top Then
If Ship.Top <= (Box(all).Top + Box(all).Height) Then
If Ship.Left <= (Box(all).Left + Box(all).Width) Then
If (Ship.Left + Ship.Width) >= Box(all).Left Then
EndE
End If
End If
End If
End If
X = X + 1
If X >= 500 Then
X = 0
Dlinna.Caption = Dlinna.Caption + 1
End If
'============================================================
Box(all).Left = Box(all).Left - MoveB.Caption
If Box(all).Left + Box(all).Width < 0 Then
Box(all).Left = Form1.ScaleWidth
If all >= 0 And all <= 7 Then
Y = Int(Rnd * (-1000))
Box(all).Top = Form1.ScaleHeight + Y
Box(all).Height = Y * (-1)
End If
If all >= 8 And all <= 15 Then
X = Int(Rnd * (1000))
Box(all).Top = 0
Box(all).Height = X
End If
If all >= 16 And all <= 17 Then
Box(all).Top = Int(Rnd * (Form1.ScaleHeight))
Box(all).Height = Int(Rnd * (200)) + 200
Box(all).Left = Int(Rnd * (Form1.ScaleWidth) / 2) + Form1.ScaleWidth
End If
End If
'============================================================
Next
End Sub
Private Sub TUp_Timer()
SpeedD.Caption = SpeedD.Caption - Power.Caption / 10
If SpeedD.Caption <= (-Power.Caption) Then
SpeedD.Caption = (-Power.Caption)
End If
End Sub
Sub EndE()
MsgBox Dlinna.Caption
End
End Sub
-
V@NY$
-
- Начинающий

-
-
- Сообщения: 5
- Зарегистрирован: 28.01.2005 (Пт) 19:16
V@NY$ » 29.01.2005 (Сб) 14:12
странно, а у меня мерцает.

Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, PetalBot, The trick, Yandex-бот и гости: 9