السلام عليكم...
أنا اخذت الكود من هالمنتدى بس يا رييييييت لو حد يشرحلي اياه سطر بسطر ولو انه حيكون طويل بس محتاجة لهالمساعدة .... شاكرة الكم كتيييييييير
Private Sub Form_Load()
Set Dd = Dx.DirectDrawCreate("")
Dd.SetCooperativeLevel Me.hWnd, DDSCL_EXCLUSIVE Or DDSCL_FULLSCREEN Or DDSCL_ALLOWREBOOT
Dd.SetDisplayMode 800, 600, 16, 0, DDSDM_DEFAULT
Show
Ddsd.lFlags = DDSD_CAPS Or DDSD_BACKBUFFERCOUNT
Ddsd.ddsCaps.lCaps = DDSCAPS_FLIP Or DDSCAPS_COMPLEX Or DDSCAPS_PRIMARYSURFACE
Ddsd.lBackBufferCount = 1
Set Primary = Dd.CreateSurface(Ddsd)
Ddsd.ddsCaps.lCaps = DDSCAPS_BACKBUFFER
Set Back_Buffer = Primary.GetAttachedSurface(Ddsd.ddsCaps)
Ddsd.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH
Ddsd.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
Ddsd.lHeight = 50
Ddsd.lWidth = 50
Set Surf1 = Dd.CreateSurfaceFromFile(App.Path & "\pic1.bmp", Ddsd)
Set Surf2 = Dd.CreateSurfaceFromFile(App.Path & "\pic2.bmp", Ddsd)
Surf1.SetColorKey DDCKEY_SRCBLT, Key
Surf2.SetColorKey DDCKEY_SRCBLT, Key
R.Top = 0
R.Left = 0
R.Right = 50
R.Bottom = 50
X1 = 100
Y1 = 100
X2 = 700
Y2 = 500
x_Speed1 = 3
y_Speed1 = 5
x_Speed2 = -5
y_Speed2 = -3
My_Font.Name = "ARIAL"
My_Font.Size = 18
Back_Buffer.SetFillStyle 0
Back_Buffer.SetFillColor 0
Back_Buffer.SetForeColor 250
Back_Buffer.SetFont My_Font
Do
DoEvents
Back_Buffer.DrawBox 0, 0, 800, 600
Back_Buffer.BltFast X1, Y1, Surf1, _
R, DDBLTFAST_SRCCOLORKEY
Back_Buffer.BltFast X2, Y2, Surf2, R, DDBLTFAST_SRCCOLORKEY
'this is the moving code
X1 = X1 + x_Speed1
If X1 > 750 Or X1 < 0 Then x_Speed1 = -x_Speed1
Y1 = Y1 + y_Speed1
If Y1 > 550 Or Y1 < 0 Then y_Speed1 = -y_Speed1
X2 = X2 + x_Speed2
If X2 > 750 Or X2 < 0 Then x_Speed2 = -x_Speed2
Y2 = Y2 + y_Speed2
If Y2 > 550 Or Y2 < 0 Then y_Speed2 = -y_Speed2
Back_Buffer.DrawText 10, 10, "Move in direct draw", False
Primary.Flip Nothing, DDFLIP_WAIT
Loop
End Sub
Private Sub Form_Unload(Cancel As Integer)
On Error Resume Next
Set Dx = Nothing
Set Dd = Nothing
Set Primary = Nothing
Set Back_Buffer = Nothing
Set Surf1 = Nothing
Set Surf2 = Nothing
End
End Sub