Agus Admin
Mensajes : 69 Fecha de inscripción : 01/07/2008
| Tema: Minimapa con lectura de píxeles Miér Jul 02, 2008 8:31 pm | |
| Buscar - Citación :
Sub CargarCabezas() y agregar arriba: Public SupBMiniMap As DirectDrawSurface7 Public SupMiniMap As DirectDrawSurface7
agregar en Sub CargarAnimsExtra() - Citación :
Dim DDm As DDSURFACEDESC2 DDm.lHeight = 101 DDm.lWidth = 101 DDm.ddsCaps.lCaps = DDSCAPS_SYSTEMMEMORY DDm.lFlags = DDSD_CAPS Or DDSD_HEIGHT Or DDSD_WIDTH Set SupMiniMap = DirectDraw.CreateSurface(DDm) Set SupBMiniMap = DirectDraw.CreateSurface(DDm)
en el FrmMain , agregar un PictureBox con el nombre de "elPicturebox y un timer con el nombre de eltimercreado, al picturebox busquen la propiedad ScaleMode y poner en 3-pixel y al timer ponerle un intervalo de 520 y poner" DibujarMiniMapa elPicturebox " en el evento del timer luego busca: - Citación :
On Error Resume Next Select Case incomingData.PeekByte() Case ServerPacketID.logged ' LOGGED Call HandleLogged
y debajo de "Call HandleLogged" poner: - Citación :
frmMain.eltimercreado.enabled = true
luego busca: - Citación :
Case ServerPacketID.Disconnect ' FINOK Call HandleDisconnect
y debajo de "Call HandleDisconnect" pone - Citación :
frmMain.eltimercreado.enabled = false
agregar al final del modulo Mod_TileEngine : - Citación :
Public Sub DibujarMiniMapa(ByRef Pic As PictureBox) Dim DR As RECT DR.Left = 0 DR.Top = 0 DR.Bottom = 100 DR.Right = 100 SupMiniMap.Blt DR, SupBMiniMap, DR, DDBLT_DONOTWAIT DR.Left = UserPos.X DR.Top = UserPos.Y DR.Bottom = UserPos.Y + 2 DR.Right = UserPos.X + 2 SupMiniMap.BltColorFill DR, vbRed DR.Left = 0 DR.Top = 0 DR.Bottom = 100 DR.Right = 100 SupMiniMap.BltToDC Pic.hdc, DR, DR End Sub Public Sub GenerarMiniMapa() Dim X As Integer Dim Y As Integer Dim i As Integer Dim DR As RECT Dim SR As RECT SR.Left = 0 SR.Top = 0 SR.Bottom = 100 SR.Right = 100 SupBMiniMap.BltColorFill SR, vbBlack For X = MinYBorder To MaxXBorder For Y = MinYBorder To MaxYBorder If MapData(X, Y).Graphic(1).GrhIndex > 0 Then With MapData(X, Y).Graphic(1) i = GrhData(.GrhIndex).Frames(1) End With SR.Left = GrhData(i).sX SR.Top = GrhData(i).sY SR.Bottom = GrhData(i).pixelWidth SR.Right = GrhData(i).pixelHeight DR.Left = X DR.Top = Y DR.Bottom = Y + 2 DR.Right = X + 2 SupBMiniMap.Blt DR, SurfaceDB.Surface(GrhData(i).FileNum), SR, DDBLT_DONOTWAIT 'SupMiniMap.BltFast x, y, SurfaceDB.GetBMP(GrhData(i).FileNum), Sr, DDBLTFAST_DESTCOLORKEY End If Next Next End Sub
Y POR ULTIMO agregar en Sub SwitchMap antes del end sub osea debajo de : - Citación :
MapInfo.Name = "" MapInfo.Music = "" CurMap = Map
PONEN: - Citación :
GenerarMiniMapa
| |
|