Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Mapeo

Iniciado por LucifersAngel, 06 de Febrero de 2009, 07:21:43 PM

« anterior - próximo »

LucifersAngel

Hola , veo que hay 3 personas en estos foros ajajja que lastima. Muchos proyectos pocos participantes.

En este caso vengo a presentar otro problema hasta resolver el de las animaciones, estoy haciendo un mapa para un juego de lucha, como imaignararn no solo tendra un mapa sino que tendra varios mapas , estaticos por asi decir porque es solo el campo de lucha no estilo arcade
les paso a mostrar el code simple que hice para graficar el piso.

Public gfx_tile0 As Long      ' Id de la imagen que representa al jugador.
Public gfx_tile1 As Long
Public gfx_tile2 As Long

Public Pos_x As Long

gfx_tile0 = n_Gfx.MAP_Load(App.Path & "\GFX\Tiles\4_33.bmp", n_Gfx.ARGB_Set(255, 0, 0, 0))
gfx_tile1 = n_Gfx.MAP_Load(App.Path & "\GFX\Tiles\4_34.bmp", n_Gfx.ARGB_Set(255, 0, 0, 0))
gfx_tile2 = n_Gfx.MAP_Load(App.Path & "\GFX\Tiles\4_35.bmp", n_Gfx.ARGB_Set(255, 0, 0, 0))


Call n_Gfx.DRAW_Map(gfx_tile0, 20, Form3.n_Gfx.Screen.Height - 64, 0, 64, 64)
For Pos_x = 84 To 660 Step 64
Call n_Gfx.DRAW_Map(gfx_tile1, Pos_x, Form3.n_Gfx.Screen.Height - 64, 0, 64, 64)
Next Pos_x
Call n_Gfx.DRAW_Map(gfx_tile2, Form3.n_Gfx.Screen.Width - 76, Form3.n_Gfx.Screen.Height - 64, 0, 64, 64)

Call n_Gfx.Frame(0, 60)


Ahora bien, yo quiero almacenar estos datos uqe crean el mapa en algun lugar, para despues llamarlos desde el formulario cuando "ELIGA" el mapa. Estaba pensando en archivos .dat , pero no se manejarlos , que me recomiendan?

LucifersAngel

Alguien sabe dimensionar la pantalla en fullscreen?? por ej yo la inicio como

Set n_Gfx = New dx_GFX_Class

Form_Load()

Call n_Gfx.Init(Me.hWnd, 1024, 768, 32, True, False, False, 60)

End Sub


Y me queda la ventana, quiero sacarla alguien sabe como?

Hechelion

fijate bien como estas llamando la función

Citar
Public Function Init(
     hwnd As Long,
     Width As Long,
     Height As Long,
     Optional Bpp As Long = 16,
     Optional Windowed As Boolean,
     Optional TripleBuffer As Boolean,
     Optional VSync As Boolean
     Optional RefreshRate As Long = 60 ) As Boolean
Argumentos
hwnd
Long. Identificador de la ventana.
Width
Long. Ancho en píxeles del modo de video.
Height
Long. Alto en píxeles del modo de video.
Bpp
Optional. Long. Profundidad de color del modo de video.
Default: 16

Windowed
Optional. Boolean. Indica si se inicializa en modo ventana.

TripleBuffer
Optional. Boolean. Indica si se inicializa con Triple Buffer activado.
VSync
Optional. Boolean. Indica si se inicializa con la espera de refresco vertical activada.
RefreshRate
Optional. Long. Refresco del modo de video en hertzios. Si se pasa como valor 0 se usa el valor por defecto del sistema.
Default: 60



y ahora mira tu función

Citar
Form_Load()

Call n_Gfx.Init(Me.hWnd, 1024, 768, 32, True, False, False, 60)

End Sub

Con respecto a la primera pregunta, no me queda muy claro que es lo que buscas hacer.

LucifersAngel

Jaja hechelion gracias, creo que fue una pregunta bastante noob  ^_^' la mia lo habia buscado en la documentacion y no lo encontre. Gracias maestro  ;)

LucifersAngel

Alguien sabe como aplicar la colision de cuadrados en una situacion como la siguiente?



Por si no se explica, se quiere hacer "caminar" al personaje sobre el piso , el piso esta armado por sprites de 64 x 64 pixels , Gracias ;)

Hechelion

para intersecciones tienes las funciones "MATH_IntersectRect" o "MATH_PointInRect" de la clase System de la librería.

utiliza la estructura GFX_Rect (que define un rectángulo) para los personajes y otro para el piso y con MATH_IntersectRect sabrás cuando se topen, para evitar que las figuras se solapen puedes crear los rectangulos un poco más grandes que la figura original o hacer un procedimiento que compare pixel a pixel.

LucifersAngel

Gracias por tu respuesta, es lo que habia visto , ahora cuando termine de Mapear .. osea crear el mapa voy a comenzar con las colisiones. Hechelion y Ex son los unicos por estos lares como dije, este foro esta muerto traigan mas gente !






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.