spandex44
Jul 28th, 2001, 05:29 PM
Hi,
I am developing a crude graphics engine in VB. I am currently writing code to load and display bitmaps. However, I am having troubles passing the name of a new surface to a function. Check out the code below:
----------
Sub Game_Loop()
Call Load_Bitmap(16, 16, Tile_Dirt, "/tile1.bmp")
Call Draw_Bitmap(100, 100, Tile_Dirt)
End Sub
Sub Load_Bitmap(Width As Integer, Height As Integer, Bitmap_Surface_Name As DirectDrawSurface7, Bitmap_Path As String)
Dim Bitmap_Surface_Name As DirectDrawSurface7
Set Bitmap_Surface_Name = Nothing
ddsd2.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH 'default flags
ddsd2.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
ddsd2.lWidth = Width
ddsd2.lHeight = Height
'this is where the surface is created. You use the DDraw object to create a
'surface from the specified file name using the above description.
Set Bitmap_Surface_Name = dd.CreateSurfaceFromFile(App.Path & Bitmap_Path, ddsd2)
End Sub
Sub Draw_Bitmap(X_Coor As Integer, Y_Coor As Integer, Surface_Name As DirectDrawSurface7)
Dim ddrval As Long
rBack.Bottom = ddsd3.lHeight
rBack.Right = ddsd3.lWidth
ddrval = backbuffer.BltFast(X_Coor, Y_Coor, Surface_Name, rBack, DDBLTFAST_WAIT)
End Sub
----------
When the application launches I receive an error message saying "Variable not decfined" referring to Tile_Dirt from these lines of code:
Call Load_Bitmap(16, 16, Tile_Dirt, "/tile1.bmp")
Call Draw_Bitmap(100, 100, Tile_Dirt)
This is probably just a basic programming question, but I need to know how to pass the surface name to these functions. Thanks a lot!
Alexander
I am developing a crude graphics engine in VB. I am currently writing code to load and display bitmaps. However, I am having troubles passing the name of a new surface to a function. Check out the code below:
----------
Sub Game_Loop()
Call Load_Bitmap(16, 16, Tile_Dirt, "/tile1.bmp")
Call Draw_Bitmap(100, 100, Tile_Dirt)
End Sub
Sub Load_Bitmap(Width As Integer, Height As Integer, Bitmap_Surface_Name As DirectDrawSurface7, Bitmap_Path As String)
Dim Bitmap_Surface_Name As DirectDrawSurface7
Set Bitmap_Surface_Name = Nothing
ddsd2.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH 'default flags
ddsd2.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
ddsd2.lWidth = Width
ddsd2.lHeight = Height
'this is where the surface is created. You use the DDraw object to create a
'surface from the specified file name using the above description.
Set Bitmap_Surface_Name = dd.CreateSurfaceFromFile(App.Path & Bitmap_Path, ddsd2)
End Sub
Sub Draw_Bitmap(X_Coor As Integer, Y_Coor As Integer, Surface_Name As DirectDrawSurface7)
Dim ddrval As Long
rBack.Bottom = ddsd3.lHeight
rBack.Right = ddsd3.lWidth
ddrval = backbuffer.BltFast(X_Coor, Y_Coor, Surface_Name, rBack, DDBLTFAST_WAIT)
End Sub
----------
When the application launches I receive an error message saying "Variable not decfined" referring to Tile_Dirt from these lines of code:
Call Load_Bitmap(16, 16, Tile_Dirt, "/tile1.bmp")
Call Draw_Bitmap(100, 100, Tile_Dirt)
This is probably just a basic programming question, but I need to know how to pass the surface name to these functions. Thanks a lot!
Alexander