Skocz do zawartości

Zablokowane [Visual Basic] Problem z procedurą InitSurface


TuxMan

Rekomendowane odpowiedzi

Siemka.

 

Teraz tworzę swoje MMO w VB, które będzie się nazywać "Fibula" (bo w VB lepiej się robi MMOsy niż w Delphi czy C++)

 

Tylko, że mam problem przy ładowaniu gry. Otóż wyświetla się komunikat:

 

fiberrorvy7.th.jpgthpix.gif

 

I gra się zamyka!

 

A oto wadliwy kod (pogrubiona została ta linijka, która sprawia błąd):

 

[...]

 

Private Sub InitSurface(ByVal filename As String, ByVal StrPW As String, ByRef DDSD As DDSURFACEDESC2, ByRef DDSurf As DirectDrawSurface7)

Dim sDc As Long

Dim BMU As BitmapUtils

 

Set BMU = New BitmapUtils

 

With BMU

Call .LoadByteData(filename)

Call .DecryptByteData(StrPW)

Call .DecompressByteData

End With

 

DDSD.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH

DDSD.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN Or DDSCAPS_SYSTEMMEMORY

DDSD.lWidth = BMU.ImageWidth

DDSD.lHeight = BMU.ImageHeight

 

Set DDSurf = DD.CreateSurface(DDSD)

 

sDc = DDSurf.GetDC

Call BMU.Blt(sDc)

Call DDSurf.ReleaseDC(sDc)

Call SetMaskColorFromPixel(DDSurf, 0, 0)

 

Set BMU = Nothing

End Sub

 

[...]

 

Co należy zrobić z tą linijką (lub z całym kodem), żeby normalnie gra wystartowała??

Odnośnik do komentarza
Udostępnij na innych stronach

Łatwiej Ci jest w VB? W każdym języku by Ci było łatwiej z silnikiem odpowiednim ;p . Upewnij się, czy zmienna DDSD jest na pewno zadeklarowana, bo to sprawia błąd. Ewentualnie może nie być funkcji "DD.CreateSurface()".

 

Thx, Marmot ;). Zaraz to zrobię :)

 

@Edit: Zadziałało! Zamykam temat ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...